Search in sources :

Example 1 with TriggerDefinition

use of org.hl7.fhir.r4.model.TriggerDefinition in project org.hl7.fhir.core by hapifhir.

the class RdfParser method composeTriggerDefinition.

protected void composeTriggerDefinition(Complex parent, String parentType, String name, TriggerDefinition element, int index) {
    if (element == null)
        return;
    Complex t;
    if (Utilities.noString(parentType))
        t = parent;
    else {
        t = parent.predicate("fhir:" + parentType + '.' + name);
    }
    composeElement(t, "TriggerDefinition", name, element, index);
    if (element.hasTypeElement())
        composeEnum(t, "TriggerDefinition", "type", element.getTypeElement(), -1);
    if (element.hasEventNameElement())
        composeString(t, "TriggerDefinition", "eventName", element.getEventNameElement(), -1);
    if (element.hasEventTiming())
        composeType(t, "TriggerDefinition", "eventTiming", element.getEventTiming(), -1);
    if (element.hasEventData())
        composeDataRequirement(t, "TriggerDefinition", "eventData", element.getEventData(), -1);
}
Also used : Complex(org.hl7.fhir.dstu3.utils.formats.Turtle.Complex)

Example 2 with TriggerDefinition

use of org.hl7.fhir.r4.model.TriggerDefinition in project org.hl7.fhir.core by hapifhir.

the class JsonParser method composeType.

protected void composeType(String prefix, Type type) throws IOException {
    if (type == null)
        ;
    else if (type instanceof Age)
        composeAge(prefix + "Age", (Age) type);
    else if (type instanceof Count)
        composeCount(prefix + "Count", (Count) type);
    else if (type instanceof Money)
        composeMoney(prefix + "Money", (Money) type);
    else if (type instanceof Distance)
        composeDistance(prefix + "Distance", (Distance) type);
    else if (type instanceof Duration)
        composeDuration(prefix + "Duration", (Duration) type);
    else if (type instanceof SimpleQuantity)
        composeSimpleQuantity(prefix + "SimpleQuantity", (SimpleQuantity) type);
    else if (type instanceof Period)
        composePeriod(prefix + "Period", (Period) type);
    else if (type instanceof Coding)
        composeCoding(prefix + "Coding", (Coding) type);
    else if (type instanceof Range)
        composeRange(prefix + "Range", (Range) type);
    else if (type instanceof Quantity)
        composeQuantity(prefix + "Quantity", (Quantity) type);
    else if (type instanceof Attachment)
        composeAttachment(prefix + "Attachment", (Attachment) type);
    else if (type instanceof Ratio)
        composeRatio(prefix + "Ratio", (Ratio) type);
    else if (type instanceof Annotation)
        composeAnnotation(prefix + "Annotation", (Annotation) type);
    else if (type instanceof SampledData)
        composeSampledData(prefix + "SampledData", (SampledData) type);
    else if (type instanceof Reference)
        composeReference(prefix + "Reference", (Reference) type);
    else if (type instanceof CodeableConcept)
        composeCodeableConcept(prefix + "CodeableConcept", (CodeableConcept) type);
    else if (type instanceof Identifier)
        composeIdentifier(prefix + "Identifier", (Identifier) type);
    else if (type instanceof Signature)
        composeSignature(prefix + "Signature", (Signature) type);
    else if (type instanceof TriggerDefinition)
        composeTriggerDefinition(prefix + "TriggerDefinition", (TriggerDefinition) type);
    else if (type instanceof ElementDefinition)
        composeElementDefinition(prefix + "ElementDefinition", (ElementDefinition) type);
    else if (type instanceof Timing)
        composeTiming(prefix + "Timing", (Timing) type);
    else if (type instanceof ModuleMetadata)
        composeModuleMetadata(prefix + "ModuleMetadata", (ModuleMetadata) type);
    else if (type instanceof ActionDefinition)
        composeActionDefinition(prefix + "ActionDefinition", (ActionDefinition) type);
    else if (type instanceof Address)
        composeAddress(prefix + "Address", (Address) type);
    else if (type instanceof HumanName)
        composeHumanName(prefix + "HumanName", (HumanName) type);
    else if (type instanceof DataRequirement)
        composeDataRequirement(prefix + "DataRequirement", (DataRequirement) type);
    else if (type instanceof Meta)
        composeMeta(prefix + "Meta", (Meta) type);
    else if (type instanceof ParameterDefinition)
        composeParameterDefinition(prefix + "ParameterDefinition", (ParameterDefinition) type);
    else if (type instanceof ContactPoint)
        composeContactPoint(prefix + "ContactPoint", (ContactPoint) type);
    else if (type instanceof MarkdownType) {
        composeMarkdownCore(prefix + "Markdown", (MarkdownType) type, false);
        composeMarkdownExtras(prefix + "Markdown", (MarkdownType) type, false);
    } else if (type instanceof UnsignedIntType) {
        composeUnsignedIntCore(prefix + "UnsignedInt", (UnsignedIntType) type, false);
        composeUnsignedIntExtras(prefix + "UnsignedInt", (UnsignedIntType) type, false);
    } else if (type instanceof CodeType) {
        composeCodeCore(prefix + "Code", (CodeType) type, false);
        composeCodeExtras(prefix + "Code", (CodeType) type, false);
    } else if (type instanceof IdType) {
        composeIdCore(prefix + "Id", (IdType) type, false);
        composeIdExtras(prefix + "Id", (IdType) type, false);
    } else if (type instanceof OidType) {
        composeOidCore(prefix + "Oid", (OidType) type, false);
        composeOidExtras(prefix + "Oid", (OidType) type, false);
    } else if (type instanceof PositiveIntType) {
        composePositiveIntCore(prefix + "PositiveInt", (PositiveIntType) type, false);
        composePositiveIntExtras(prefix + "PositiveInt", (PositiveIntType) type, false);
    } else if (type instanceof UuidType) {
        composeUuidCore(prefix + "Uuid", (UuidType) type, false);
        composeUuidExtras(prefix + "Uuid", (UuidType) type, false);
    } else if (type instanceof IntegerType) {
        composeIntegerCore(prefix + "Integer", (IntegerType) type, false);
        composeIntegerExtras(prefix + "Integer", (IntegerType) type, false);
    } else if (type instanceof DateTimeType) {
        composeDateTimeCore(prefix + "DateTime", (DateTimeType) type, false);
        composeDateTimeExtras(prefix + "DateTime", (DateTimeType) type, false);
    } else if (type instanceof DateType) {
        composeDateCore(prefix + "Date", (DateType) type, false);
        composeDateExtras(prefix + "Date", (DateType) type, false);
    } else if (type instanceof DecimalType) {
        composeDecimalCore(prefix + "Decimal", (DecimalType) type, false);
        composeDecimalExtras(prefix + "Decimal", (DecimalType) type, false);
    } else if (type instanceof UriType) {
        composeUriCore(prefix + "Uri", (UriType) type, false);
        composeUriExtras(prefix + "Uri", (UriType) type, false);
    } else if (type instanceof Base64BinaryType) {
        composeBase64BinaryCore(prefix + "Base64Binary", (Base64BinaryType) type, false);
        composeBase64BinaryExtras(prefix + "Base64Binary", (Base64BinaryType) type, false);
    } else if (type instanceof TimeType) {
        composeTimeCore(prefix + "Time", (TimeType) type, false);
        composeTimeExtras(prefix + "Time", (TimeType) type, false);
    } else if (type instanceof StringType) {
        composeStringCore(prefix + "String", (StringType) type, false);
        composeStringExtras(prefix + "String", (StringType) type, false);
    } else if (type instanceof BooleanType) {
        composeBooleanCore(prefix + "Boolean", (BooleanType) type, false);
        composeBooleanExtras(prefix + "Boolean", (BooleanType) type, false);
    } else if (type instanceof InstantType) {
        composeInstantCore(prefix + "Instant", (InstantType) type, false);
        composeInstantExtras(prefix + "Instant", (InstantType) type, false);
    } else
        throw new Error("Unhandled type");
}
Also used : FHIRFormatError(org.hl7.fhir.exceptions.FHIRFormatError)

Example 3 with TriggerDefinition

use of org.hl7.fhir.r4.model.TriggerDefinition in project eCRNow by drajer-health.

the class PlanDefinitionProcessor method processTriggerDefinitions.

private void processTriggerDefinitions(List<TriggerDefinition> tdlist, AbstractAction act) {
    if (tdlist != null && !tdlist.isEmpty()) {
        for (TriggerDefinition triggerDefinition : tdlist) {
            if (triggerDefinition.getType() != TriggerType.NAMEDEVENT && triggerDefinition.getType() != TriggerType.PERIODIC && triggerDefinition.hasData()) {
                logger.info(" Identified Data Trigger for Act {}", act.getActionId());
                List<DataRequirement> dr = triggerDefinition.getData();
                for (DataRequirement d : dr) {
                    // Create ActionData object
                    ActionData ad = new ActionData();
                    ad.setTriggerType(triggerDefinition.getType());
                    ad.setFhirDataType(FHIRAllTypes.valueOf(d.getType().toUpperCase()));
                    if (d.hasProfile())
                        ad.setProfiles(d.getProfile());
                    if (d.hasCodeFilter()) {
                        DataRequirementCodeFilterComponent cf = d.getCodeFilterFirstRep();
                        if (cf.hasPath()) {
                            ad.setPath(d.getType() + "." + cf.getPath());
                            logger.info(" Evaluation Path = {}", ad.getPath());
                        }
                        if (cf.hasValueSet())
                            ad.setValueSet(cf.getValueSetElement());
                    }
                    act.addActionData(ad);
                }
            } else if (triggerDefinition.getType() == TriggerType.PERIODIC) {
                if (triggerDefinition.hasTimingTiming()) {
                    Timing t = triggerDefinition.getTimingTiming();
                    if (t.hasRepeat()) {
                        TimingSchedule ts = getTimingSchedule(t, triggerDefinition.getType());
                        if (ts != null) {
                            act.addTimingData(ts);
                        }
                    }
                } else {
                // Not handling the others for eCR
                }
            } else {
            // Ignore other types for eCR
            }
        }
    }
}
Also used : TriggerDefinition(org.hl7.fhir.r4.model.TriggerDefinition) DataRequirement(org.hl7.fhir.r4.model.DataRequirement) ActionData(com.drajer.eca.model.ActionData) Timing(org.hl7.fhir.r4.model.Timing) DataRequirementCodeFilterComponent(org.hl7.fhir.r4.model.DataRequirement.DataRequirementCodeFilterComponent) TimingSchedule(com.drajer.eca.model.TimingSchedule)

Example 4 with TriggerDefinition

use of org.hl7.fhir.r4.model.TriggerDefinition in project cqf-ruler by DBCG.

the class ProcessMessageProvider method constructMessageHeaderResource.

private MessageHeader constructMessageHeaderResource() {
    String message = "{\"resourceType\": \"MessageHeader\",\"id\": \"messageheader-example-reportheader\",\"meta\": {\"versionId\": \"1\",\"lastUpdated\": \"2020-11-29T02:03:28.045+00:00\",\"profile\": [\"http://hl7.org/fhir/us/medmorph/StructureDefinition/us-ph-messageheader\"]},\"extension\": [{\"url\": \"http://hl7.org/fhir/us/medmorph/StructureDefinition/ext-dataEncrypted\",\"valueBoolean\": false},{\"url\":\"http://hl7.org/fhir/us/medmorph/StructureDefinition/ext-messageProcessingCategory\",\"valueCode\": \"consequence\"}],\"eventCoding\": {\"system\": \"http://hl7.org/fhir/us/medmorph/CodeSystem/us-ph-messageheader-message-types\",\"code\": \"cancer-report-message\"},\"destination\": [{\"name\": \"PHA endpoint\",\"endpoint\": \"http://example.pha.org/fhir\"}],\"source\": {\"name\": \"Healthcare Organization\",\"software\": \"Backend Service App\",\"version\": \"3.1.45.AABB\",\"contact\": {\"system\": \"phone\",\"value\": \"+1 (917) 123 4567\"},\"endpoint\": \"http://example.healthcare.org/fhir\"},\"reason\": {\"coding\": [{\"system\": \"http://hl7.org/fhir/us/medmorph/CodeSystem/us-ph-triggerdefinition-namedevents\",\"code\": \"encounter-close\"}]}}";
    MessageHeader messageHeader = (MessageHeader) this.getFhirContext().newJsonParser().parseResource(message);
    messageHeader.setId(getUUID());
    return messageHeader;
}
Also used : MessageHeader(org.hl7.fhir.r4.model.MessageHeader)

Example 5 with TriggerDefinition

use of org.hl7.fhir.r4.model.TriggerDefinition in project kindling by HL7.

the class PageProcessor method tdHeader.

private String tdHeader(String mode) {
    StringBuilder b = new StringBuilder();
    b.append("<ul class=\"nav nav-tabs\">");
    b.append(makeHeaderTab("Trigger Definition", "triggerdefinition.html", mode == null || "base".equals(mode)));
    b.append(makeHeaderTab("Examples", "triggerdefinition-examples.html", mode == null || "examples".equals(mode)));
    b.append(makeHeaderTab("Detailed Descriptions", "triggerdefinition-definitions.html", mode == null || "definitions".equals(mode)));
    b.append(makeHeaderTab("Mappings", "triggerdefinition-mappings.html", mode == null || "mappings".equals(mode)));
    b.append("</ul>\r\n");
    return b.toString();
}
Also used : CommaSeparatedStringBuilder(org.hl7.fhir.utilities.CommaSeparatedStringBuilder)

Aggregations

FHIRFormatError (org.hl7.fhir.exceptions.FHIRFormatError)3 HashSet (java.util.HashSet)2 Complex (org.hl7.fhir.dstu3.utils.formats.Turtle.Complex)2 DataRequirement (org.hl7.fhir.r4.model.DataRequirement)2 DataRequirementCodeFilterComponent (org.hl7.fhir.r4.model.DataRequirement.DataRequirementCodeFilterComponent)2 TriggerDefinition (org.hl7.fhir.r4.model.TriggerDefinition)2 ValueSet (org.hl7.fhir.r4.model.ValueSet)2 ActionData (com.drajer.eca.model.ActionData)1 CloseOutEicrAction (com.drajer.eca.model.CloseOutEicrAction)1 CreateEicrAction (com.drajer.eca.model.CreateEicrAction)1 CreateEicrAfterRecheckAction (com.drajer.eca.model.CreateEicrAfterRecheckAction)1 EcrActionTypes (com.drajer.eca.model.EventTypes.EcrActionTypes)1 MatchTriggerAction (com.drajer.eca.model.MatchTriggerAction)1 PeriodicUpdateEicrAction (com.drajer.eca.model.PeriodicUpdateEicrAction)1 SubmitEicrAction (com.drajer.eca.model.SubmitEicrAction)1 TimingSchedule (com.drajer.eca.model.TimingSchedule)1 ValidateEicrAction (com.drajer.eca.model.ValidateEicrAction)1 HashMap (java.util.HashMap)1 Set (java.util.Set)1 Complex (org.hl7.fhir.dstu2016may.formats.RdfGenerator.Complex)1