How to identify unique entries in ccda file? - ccd

Basically, if user uploads same c-cda document again or other documents containing same entries of like medications, vitals, allergies, surgeries, etc than I want to make sure they do not get duplicated in database and want to skip those from inserting again.

Each entry inside an HL7 CDA could have an id attribute, which definition form HL7 V3 RIM is:
3.1.1.3
Act.id :: SET (0..N)
Definition:A unique identifier for the Act.
Use it in order to uniquely identify you entries, and avoid duplicates.
This element is not mandatory, but if you are implementing C-CDA, this template for substance administration specifies that this element is mandatory, so you should ask document sender to inform it. Here is a substance administration example form C-CDA:
<substanceAdministration classCode="SBADM" moodCode="EVN">
<templateId root="2.16.840.1.113883.10.20.22.4.16"/>
<id root="cdbd33f0-6cde-11db-9fe1-0800200c9a66"/>
<text>
<reference value="#med1/>
Proventil 0.09 MG/ACTUAT inhalant solution, 2 puffs QID PRN wheezing
</text>
<statusCode code="completed"/>
<effectiveTime xsi:type="IVL_TS">
<low value="20110301"/>
<high value="20120301"/>
</effectiveTime>
<effectiveTime xsi:type="PIVL_TS" institutionSpecified="true" operator="A">
<period value="6" unit="h"/>
</effectiveTime>
...
Martí
martipamies#vico.org

Related

How to train watson on names entity or general string?

I need to train watson assistant on the following utterance, what is the order status of Bob/Jane or some name.
I tried with #sys-person but it does not recognize all names.
I defined an intent like this
what is order status of #name
and created entity #name as \b[A-Za-z0-9]\b
This is a good use for contextual entities. You can read up on those here:
Contextual Entities with IBM Watson Assistant
All about entities: Contextual entities with Watson Assistanthttps://medium.com/ibm-watson/all-about-entities-contextual-entities-with-watson-assistant-part-2-7697d2b73db0)
The idea is that you don't need your bot to know all possible names in advance, but instead it can recognize a name based on the context within an intent.
To set this up, you'd go to your order status intent and add some training examples such as:
what is the order status of Name
what is the order status of Another Name
what is the order status of Yet Another Name
(These examples can have any kind of name, whether fake or real.)
And then you'll annotate each of those to associate the name with the #name entity, by double-clicking on the name portion of the training examples (i.e. Name, Another Name, Yet Another Name) to bring up the entity selection UI and specifying your #name entity.
After Watson finishes training, you can test it in the "Try it out" window. Enter something like "what is the order status of Charles Flint" or "what is the order status of Thomas Watson" and you should see your #name entity matched. From there, you can access the name specified by the user with #name.value.
Hi JohnDon't wish to dismiss your entity pattern, however from experience I have seen its almost impossible to determine a complete list of people names. I use both #sys-person and my own #names entity which contains over 6,000 common names, and we are still adding missing values to the list. We also have a #bad_names list which contains names that match common words like; summer, cherry, star, cj, etc. By using both your intent or #sys-person or #names, etc in your condition you have a good chance to catch a high percent of the users messages.

Verify vouchers integrated into tally from staging table

If I have 5 vouchers in SQL server database staging table and I imported all 5 vouchers in tally using tally XML API.
How can I verify and cross check the vouchers between tally and SQL using only voucher number?
Do I have to read entire voucher summary from tally and then extract voucher numbers from the XML data ? After extracting voucher numbers I can compare it to staging table.
How can I just export only voucher number or one specific field from a report in tally ?
Do you know the voucher number after importing into Tally? Depending on the answer to this, I'll update my answer.
Case 1: If you do know the voucher number, you can use Tally XML to request for that particular voucher number and if you get a positive response, then that voucher exists in tally. No need to read voucher summary. You'll just need to look for a particular element tag in XML response - if that element exists = voucher exists.
Case 2: But I assume you don't know the voucher number that was created during the import. In that case. It'll be a bit more tricky. Let me know and I'll update with whatever solution I have.
--Update--
After discussing (see comments), I'm updating the answer as per Case 1.
XML Request Structure -
<ENVELOPE>
<HEADER>
<VERSION>1</VERSION>
<TALLYREQUEST>EXPORT</TALLYREQUEST>
<TYPE>COLLECTION</TYPE>
<ID>FindParticularVoucher</ID>
</HEADER>
<BODY>
<DESC>
<STATICVARIABLES>
<SVEXPORTFORMAT>$$SysName:XML</SVEXPORTFORMAT>
<SVCURRENTCOMPANY>FOO COMPANY</SVCURRENTCOMPANY>
<VCHNO>ABC1234</VCHNO>
</STATICVARIABLES>
<TDL>
<TDLMESSAGE>
<COLLECTION NAME="FindParticularVoucher" ISINITIALIZE="YES">
<TYPE>Voucher</TYPE>
<FILTER>GetInvoiceVoucher</FILTER>
</COLLECTION>
<VARIABLE NAME="VCHNO">
<TYPE>String</TYPE>
</VARIABLE>
<SYSTEM TYPE="FORMULAE" NAME="GetInvoiceVoucher">$VoucherNumber = $$String:##VCHNO</SYSTEM>
</TDLMESSAGE>
</TDL>
</DESC>
</BODY>
</ENVELOPE>
Remember to change the Company name & Voucher Number within the SVCURRENTCOMPANY and VCHNO Xml Tags.
You might get a complex XML Response. All you need to do is look for the XML Node named Voucher within the Collection Node - Envelope/Body/Data/Collection/Voucher. If this VoucherNode exists = your voucher exists in tally. In this case you don't need to export any data or the voucher number.
When you create a voucher using XML in Tally, you would get a XML response on successful creation. That response has a tag for, among other things, the voucher number that you have given, and a LASTVCHID. This is like the master ID in tally. It's then easier to just request that master id and check the response. It would give an error if it doesn't find that master id (best of all, the error is just a one line XML response so no parsing required).
Check out this stackoverflow link for more details - how to filter tally xml response based on voucher number?

MDS business rule

I am new with MDS, and I have a question about one to many relation mapping in MDS
I have a product, contains descriptions in multiple languages. I have created two entities with derived hierarchy structure: product (P_ID, P_name)and Addtional description(P_ID, P_Name_in_German, P_name_in_English).
Additonal description is a drop down from product table from MDS UI, but I only want to populate info that releated with its same P_ID. How can I achieve that? Can I use business rules here and how it should look like?
(2012 Master data service' web interface)
I have also faced a similar problem. I have decided to add multiple fields for languages and apply business rules for them. Let's see how it would work for your entity:
Product entity
{
Code
Name
Name_in_English (text)
Name_in_German (text)
Default_language (domain based, points to Languages entity)
}
Languages entity
{
Code
Name
}
Add values to the Languages entity:
Code = "EN", Mane = "EN"
Code = "DE", name = "DE"
Now we need to add the following business rules to the Product entity:
BR1:
{
IF Condition - Equals: Default_language equals "EN"
THEN Action - Change value: Name = Name_in_English
}
BR2:
{
IF Condition - Equals: Default_language equals "DE"
THEN Action - Change value: Name = Name_in_German
}
After that You will see the product names in your product entity only in proper language which is chosen by drop-down field Default_language.
The second option:
If You want user to see only the Name field and don't want him to see additional fields,
You can hide those fields (Name_in_English and Name_in_German) by setting their width to zero.
Moreover, You can use attribute groups to separate two modes of view:
first mode (for the regular user) - You see only Code and Name
second mode (for the administrator) - You see fields: Name_in_English, Name_in_German, Default_language.
For it to work You need to create two attribute groups:
1) attribute group "EN" (add attributes Name and Code to the group)
2) attribute group "DE" (add attributes Name_in_English, Name_in_German, Default_language to the group)
Hope something of that is helpful!
You're missing something. You said you have a derived hierarchy structure but you don't show a domain based attribute on the Additional description entity with a pointer back to the Product entity. Perhaps you were thinking that the P_ID for Additional Description is the pointer back but it isn't (based on your explanation). It is the entity Code identifier for the Additional Description entity and not the key you need that points back to Product. Perhaps you meant One to One. One to Many implies you have a separate Parent_P_ID back to the Product entity.
Add the Domain Based Parent_P_ID attribute to the Additional Description entity and then reconstruct your derived hierarchy structure. This may not be that helpful because I think you have left something out of the explanation of what you are trying to do.
Hi Cocunuts,
We can not assign derived hierarchy to entities in MDS 2012,but we can achieve this in MDS 2016 , Your Domain based attribute(Drop down) cannot be further filtered in MDS 2012.

Wikidata API: Check whether a Wikivoyage article is linked from Wikidata

I want to programmatically check whether an English Wikivoyage article (for instance Bronzeville) is linked from the Wikidata database or not.
For instance, the Bronzeville article at English Wikivoyage is NOT linked from Wikidata (even though the item exists).
Note: Some Wikidata items have labels, but that does not imply existence or non-existence, as some items have no label, and some items with the same label refer to two different things (for instance a place and a person).
Is there a way to do this, via the Wikidata API or other?
Whether a Wikivoyage article is linked from Wikidata or not can be found via a query like the ones below:
https://en.wikivoyage.org/w/api.php?action=query&titles=Bronzeville&prop=pageprops&format=jsonfm
https://en.wikivoyage.org/w/api.php?action=query&titles=Paris&prop=pageprops&format=jsonfm
If the response contains "wikibase_item", then it means it is linked.
You can use the wbgetentities method for this. To do this, ask it for the entity that's related to the desired article on enwikivoyage. For example, for an entity where the link exists (Prague):
http://www.wikidata.org/w/api.php?action=wbgetentities&sites=enwikivoyage&titles=Prague&format=xml&props=
You get result like this:
<entity id="q1085" type="item" />
If the link doesn't exist (Bronzeville):
http://www.wikidata.org/w/api.php?action=wbgetentities&sites=enwikivoyage&titles=Bronzeville&format=xml&props=
The result is:
<entity site="enwikivoyage" title="Bronzeville" missing="" />
(The props= part of the query is there so that you don't get all the information about the entry, just whether it exists or not.)

html multiple fields differentiation on a form

i'm new to website development and i'm unsure of the technical word for this but i have a form with fields on it e.g.
User Info
Name
Surname
Address
User Modules
Module Name
Module Day
....
At present i have these fields in a form showing one after another, there is no separation between them. Is there a function in html that i can use to make the form a bit more readable? e.g. (like a group separation?) i know i can just indent the title but would like to know the proper way to do this.
User Info
Name
Surname
Address
User Modules
Module Name
Module Day
....
Use a FIELDSET and a LEGEND.