User bio
404 bio not found
Member since Apr 27, 2017
Posts:
Replies:
Thanks @Alexander Koblov
I just quick checked the documentation. It's fixed!
Hello @isabella Barnes
I'd create some custom container. Check, modify and validate all the fields in payload by using some additional DTL's and Code from the and mapped into the custom container. Then I created a DTL mapping and map the custom container with the InterSystems intermediary format HS.SAD3.Container
Finally use the container object to generate the FHIR resource.
/// custom conatiner class
Class Test.project.CustomContainer Extends (Ens.Request, %JSON.Adaptor)
{
/// (Custom Persistent class with HS.SDA3.Medication)
Property Medication As Medication;
Property Procedure As Procedure;
/// (Custom Persistent class with HS.SDA3.Procedure)
Property Referral As Referral;
/// (Custom Persistent class with HS.SDA3.Referral)
Property Appointment As Appointment;
/// (Custom Persistent class with HS.SDA3.Appointment)
Property Immunization As Immunization;
/// (Custom Persistent class with HS.SDA3.Vaccination)
Property Diagnosis As Diagnosis;
/// (Custom Persistent class with HS.SDA3.Diagnosis)
}
/// additional support class
Class Test.project.Medication Extends (Ens.Request, %JSON.Adaptor)
{
/// Add your fields
///
Property Context As %String(MAXLEN = 250);
/// Relevant to Medication Requests, this represents whether a request is a proposal,
/// plan, or an original order.
/// VIEWERLIB: Not stored
Property RequestIntent As HS.SDA3.CodeTableDetail.MedicationRequestIntent;
/// Indicates if this record was captured as a secondary 'reported' record rather than
/// as an original primary source-of-truth record.
/// VIEWERLIB: Not stored
Property IsReported As HS.SDA3.Boolean;
/// etc........
}
Class Test.project.Procedure Extends (Ens.Request, %JSON.Adaptor)
{
/// Add your fields
///
Property EnteredOn As HS.SDA3.TimeStamp;
/// HL7: PR1-19.1 : ProcedureIdentifier.EntityIdentifier<br>
/// VIEWERLIB: User.HS.MRProcedures(PROCExternalId)
Property ExternalId As %String(MAXLEN = 220);
/// etc........
}
DTL Mapping
Class Test.project.DTL.CustomToFHIRMapping Extends Ens.DataTransformDTL [ DependsOn = (Test.project.CustomContainer, HS.SDA3.Container) ]
{
Parameter IGNOREMISSINGSOURCE = 1;
Parameter REPORTERRORS = 1;
Parameter TREATEMPTYREPEATINGFIELDASNULL = 0;
XData DTL [ XMLNamespace = "http://www.intersystems.com/dtl" ]
{
<transform sourceClass='Test.project.CustomContainer' targetClass='HS.SDA3.Container' create='new' language='objectscript' >
<assign value='source.Medication' property='target.Medications.(1)' action='set' />
<assign value='source.Procedure' property='target.Procedures.(1)' action='set' />
<assign value='source.Referral' property='target.Referrals.(1)' action='set' />
<assign value='source.Appointment' property='target.Appointments.(1)' action='set' />
<assign value='source.Diagnosis' property='target.Diagnoses.(1)' action='set' />
</transform>
}
}
screenshot of DTL
This is how I approach the conversion.
Thanks!
Open Exchange applications:
Certifications & Credly badges:
Global Masters badges:
Followers:
Following:
I don't have any granular level samples right now. Generally speaking, it depends on our code implementation how we get the payload data from the system/upstream stream. There are certain validation based on the requirements. So, I hope there is no general mapping to convert our information into SDA.
Thanks!