Identifying HL7 V3 schemas for CDA R2 - biztalk

The company I work for recently started a project delving into the world of HL7 messaging and data trading. We are using BizTalk Server 2010 with the BTAHL7 accelerator for 2010 with success so far for HL7 v2 but now we have a need to accept HL7 v3 (CDA R2) documents. These are CCD's we will be accepting from an external vendor.
I have the full suite of .xsd schemas from HL7 for CDA R2 (all 1541 of them) but am struggling with how to figure out which schemas relate to the messages we will be receiving. All I have to work with are test CCD messages from our trading partner and no other information. I have tried to use the code and display name along with the templateId's to figure out which subschemas this will match so I can appropriately map into our internal canonical formats for data loading but I am struggling to figure that out.
I'd rather not create one project in BizTalk that holds all 1541 schemas to parse and validate these files as that would make reading my maps and transformation mechanisms that much more difficult. Has anyone with experience in HL7 v3 and BizTalk got any guidance on how I can identify the appropriate subschemas based on the information available in the test files?
Here is the header information:
<realmCode code="US"/>
<typeId root="XXX" extension="POCD_HD000040"/>
<templateId root="2.16.840.1.113883.10.20.1"/>
<templateId root="2.16.840.1.113883.3.88.11.32.1"/>
<templateId root="1.3.6.1.4.1.19376.1.5.3.1.1.6"/>
<templateId root="1.3.6.1.4.1.19376.1.5.3.1.1.2"/>
<templateId root="1.3.6.1.4.1.19376.1.5.3.1.1.1"/>
<templateId root="2.16.840.1.113883.10.20.3"/>
<templateId root="2.16.840.1.113883.3.88.11.83.1"/>
<id root="1.2.840.113619.21.1.3164884235793924544.1704986688012700"/>
<code code="34133-9" codeSystem="XXX" codeSystemName="LOINC" displayName="Summarization of episode note"/>
<title>XXX</title>
<effectiveTime value="20140110152448-0500"/>
<confidentialityCode code="N" codeSystem="XXX"/><languageCode code="en-US"/>

CDA is not like the rest of V3, and the v3 schemas are irrelevant. I would've thought Biztalk included CDA schemas specifically. The ones you need are:
datatypes-base.xsd
NarrativeBlock.xsd
voc.xsd
datatypes.xsd
POCD_MT000040.xsd
CDA.xsd

As #Grahame stated, having the HL7 V3 schemas does not really help you implement the CDA in BizTalk. The CCD (Continuity of Care Document) is a defined set of constraints on the CDA (Clinical Document Architecture) standard.
In order to obtain the CCD schemas, you have to go to HL7. You can download the CCD spec, samples, and required schemas directly by going here, accepting the HL7 licensing agreement, and giving them your data.
Once you download the ZIP file, look inside the CDASchemas folder for the actual schema files. The CDASchemas\cda\Schemas\CDA.xsd file will act as the "root" schema.

Related

XSD for Decoding in Logic Apps an X12 830 02000

I am looking for the XSD to use to support a Decoding action in Logic Apps for the X12 830 00200. This was approved by ANSI in 1986 (pre-ASC), but is still widely used by Ford. I understand the same XSD would be used in a BizTalk Server solution. Does anyone have one to share?
I have tried the download item MicrosoftEdiXSDTemplates.zip as part of Microsoft Azure BizTalk Services SDK Setup:
https://www.microsoft.com/en-us/download/details.aspx?id=39087
However that only goes back to 00204, which I tried unsuccessfully adapting.
I would rather not do this as a Flat File Decode, as I want all X12 830 processing in my Logic Apps solution to have a consistent, Agreement-based configuration.
I have sample EDI, drawn from the real-world.
I will be using Ford's specs for the v002001FORD 830O to validate any schema I obtain or create: https://www.gsec.ford.com/GEC/edispecs/830.pdf
** UPDATE **
Thanks all for the help. It ends up that on the MS side, the Kusto log analytics trace of my run-time activity shows explicit duplicate schema references in my Agreement, while my run-time exception from Logic Apps does not clearly indicate a duplicate schema issue is present: 'The message has an unknown document type and did not resolve to any of the existing schemas configured in the agreement.' So, there was nothing wrong with my schema. I just had to tweak my Agreement configuration. I am reporting this to MS and hope the schema validation in the Agreement and/or the exception reporting will be improved.
To me a broader issue is that the X12 schema provided are ASC-issued ones: 02000, 03000, 04000, etc.. The same ones prevented from being shared on Git due to copyright issues. The reason I believe I am running into older, ANSI-issued specs still in used despite their age by Ford, Toyota, etc. is that the same copyright issues tends continued usage by OEMs of these specs despite their age. For that reason, it would be a big help to the community if MS provided the XSDs for the ANSI-issued X12 specs as is done for the ASC-issued ones. For each ASC-issued spec, such as 04000, there are many documents: 830, 856, etc. This multiplies out to scores if not hundreds of handcrafted XSDs one may need to produce (as is our case) to implements broad X12 support in Logic Apps.
The process with outlier EDI Schemas is to find the closest one and modify it to support the version you need.
What do you mean by 'unsuccessfully adapting'? This is not an uncommon thing.
Since the spec is so old, one thing I would very much consider is bumping the interchanges up to a 'current' :) version, even just 00204. I'm not sure the specific value 00200 will work with BizTalk EDI.
You would use a custom Pipeline Component for the incoming and should be able to use the EDI.Override properties on outbound.

BizTalk support on EDIFACT for Postal Transactions

We are in a need of understanding the capability of BizTalk on EDIFACT for postal transactions.
We need to understand whether the following postal EDIFACT transactions are supported by BizTalk.
1. PREDES
2. PRECON
3. CARDIT
4. RESDIT
5. RESCON
6. RESDES
7. EMSEVT
8. ITMATT
Please Help.
All of the supported EDIFACT schemas in BizTalk Server have become open source for a while now. You can look-up if a message is supported by checking this page: https://github.com/Microsoft/Integration/tree/master/BizTalk%20Server/Schema/EDIFACT
FYI: I did a search and haven't found a match for you.

Send X12 AS2 Document with BizTalk 2013

I asked a question about EDI before EDI X12 Implementation with C#
And i'm need help again. We have decided to use BizTalk 2013, i was able to install BizTalk 2013, i need some assistance.
Our partner sent a document about AS2 Trading Partner Setup and some certificates for both production and test enviroment. The information in this document is:
AS2 Identifier and URL
MDN: SHA1
Encryption Algorithm: Triple DES
MDN Delivery Type (Synchronous/Asynchronous):
Synchronous (Asynchronous also supported)
Request Signed Receipt: Yes
Software: Cyclone Interchange
Payload Security Type (e.g., Signed, SignedAndEncrypted, etc.): SignedAndEncrypted
I read the tutorial below and try to integrate to our solution
http://msdn.microsoft.com/en-us/library/bb727687(v=bts.80).aspx
Steps i did;
Create Visual Studio Project that contains X12 850 document schema and deploy it.
Created one way receive port to receive edi document we create.
Install the certificate to Local computer > Other people
Created static solicit-response send port to send edi document to our partner and select the certificate for encrypt message.
Created parties for us and for our partner.
Created agreement between us and our partner. Select AS2 for protocol.
I did following changes in "Us > Our Partner" tab.
In Acknowledgements(MDNs) page, i selected Process inbound MDN into MessageBox for routing/delivery options and Request MDN boxes.
In Validation page i selected Message should be encrypted and DES3.
In Send Ports i selected port that i created.
Now when i copy file to receive port i created, BizTalk gives an error like this:
The AS2 Decoder encountered an exception during processing. Details of the message and exception are as follows: AS2-From:"" AS2-To:"" MessageID:"" MessageType: "unknown" Exception:"An AS2 message was received that did not contain the AS2-From header."
My test EDI document looks like (I tried with header information, and without header, results are same)
Mime-Version: 1.0
Content-Type: text/plain
Content-Transfer-Encoding: 8bit
AS2-From: ZZUS
AS2-To: ZZTHEM
AS2-Version: 1.0
Message-ID: AS2Message-001
ISA*00* *00* *ZZ*US *ZZ*THEM
*130530*1244*U*00401*00001234*0*P*:
GS*PO*US*THEM*20130530*1244*1234*X*004010
ST*850*1234
BEG*00*SA*PO1234**20130530**ZZ
ITD*ZZ***20080101*0**0*******1
DTM*002*20130615
N1*ST*US*92*1426136
N3*6719 THEALL RD STE B
N4*HOUSTON*TX*77066-1215*US
PER*ZZ*No Contact specified
PO1*1*1*CA***VN*MSC097030
PID*F****HAND SANITIZER,EPI-CLENZ,4 OZ,70% ETHYL
CTT*1
SE*44*1234
GE*1*1234
IEA*1*00001234
Btw, i'm creating document by C# code, is there any easy way BizTalk provides to create/read X12 documents like this?
Any help would be appreciated.
Thanks.
With any EDI application worth its salt (and I wouldn't put BizTalk in that category), you should be able to create a map. With all the abstraction layers that BizTalk uses, you should be able to use the various "adapters", including the EDI adapter to create a "map". The map should allow you to transform your source to a target, and then connect to another adapter to control workflow and delivery.
Here is a link to an example workflow for you: http://www.nullskull.com/a/1339/using-edi-adapter-to-sendreceive-po-within-trading-partners.aspx

Mapping WebDAV ContentClass, OutlookMessageClass and other properties to EWS Managed API

I'm working on a migration from WebDAV to EWS Managed API in Exchange 2010 and i'm having some problems with property mappings.
In WebDAV I had a custom .Net wrapper and with it i created a where condition like this:
Where w = new Where();
w.Add(new WhereCondition(Properties.ContentClass, Enums.ComparisonOperatorsEnum.NotEquals, "urn:content-classes:message"));
w.Add(new WhereCondition(Properties.OutlookMessageClass, Enums.ComparisonOperatorsEnum.Like, "IPM.Schedule.Meeting.Resp.%"));
The wrapper just creates the proper WebDAV search SQL statement under the covers.
The Properties.ContentClass equals to DAV:contentclass in the WebDAV XML schema
and i've kind of mapped it to Item.ItemClass in EWS. At least I hope this maps to it.
Properties.OutlookMessageClass equals to http://schemas.microsoft.com/exchange/outlookmessageclass in the WebDAV XML schema.
But I haven't found any EWS properties that woulp map to that one.
Is there a known mapping somewhere?
After a lot searching, contacting a few Exchange MVPs and even a Microsoft guy, the answer is always:
There's no mapping, redesign the application.

Storing or looking up ISA numbers with BizTalk EDI

My company uses BizTalk for our EDI and AS2 communications. One periodic issue is that a VAN or similar partner we transmit with will want to know whether we received a file by it's ISA #. We currently do use the ISA # for routing within our ports, but I can't seem to find anywhere that this information is stored in BizTalk. Is there a way to look up an EDI message that BizTalk recieved by ISA#? Or perhaps someway I could get a hold of it and store it on my own?
If you're not explicitly using Business Activity Monitoring (BAM) to track this, you may be able to use message tracking.
If you have:
message tracking turned on for the message properties at a point in processing the messages when the ISA number is used, and
if the ISA number is promoted in a published schema (which I'm guessing it is, if you're using the out-of-the-box EDI stuff)
...then you could use the admin console to look for tracked messages with that schema and based on the particular field in the schema (e.g., EDI.ISA08 or EDI.ISA06). Of course, if you are mapping the ISA# to a particular party through your BizTalk configuration, then you would just need to search for Tracked Message Events where the Party Name equals the name you configured for that ISA#.
There is also built-in EDI tracking (see http://msdn.microsoft.com/en-us/library/bb226464(v=bts.10).aspx), with its own reports, but I'm not familiar with it enough to say whether or not it'll give you exactly what you need.
Otherwise, you will want to look at setting up BAM to save the ISA info that you need.
These fields are available inside the Biztalk message if you do EDI receive.
msgIn(EDI.ISASegment) contains all ISA segments. Then you can do substring on control numbers and then put it in your outgoing filename:
ctrlnum (variable) = msgIn(EDI.ISA13)
newfilename = FILE.ReceivedFileName + ctrlnum ;
This way each control number will show up in your filename and you don't even need to open the file or check tracked messages.

Resources