FHIR Chat · creating spreadsheet in IG · implementers

Stream: implementers

Topic: creating spreadsheet in IG


view this post on Zulip abhishek gupta (Jan 11 2018 at 09:50):

Hi All,
anybody knows about that how to create a Spreadsheet when creating the ImplementationGuide

view this post on Zulip abhishek gupta (Jan 11 2018 at 11:11):

@Grahame Grieve
Hi I want to create multiple child profiles inside the parent profile Ex.
create a main page/e.g: PFT and include all the child profiles(BodyPosition,Peak Expiratory flow.....)like that in Implementation Guide.
if you have any idea what is the strategy we are applying here ping me

view this post on Zulip Grahame Grieve (Jan 11 2018 at 12:30):

you can lay the IG pages out however you want. The standard template makes one page per profile, but that's only a convenience in order to use templates. if you don't use templates, then you can lay things out however you want

view this post on Zulip abhishek gupta (Jan 11 2018 at 13:21):

@Grahame Grieve
I didn't get it properly.can you show me the examples where this type of the parent-child hierarchy will be followed

view this post on Zulip Lloyd McKenzie (Jan 11 2018 at 15:43):

Creating a spreadsheet and organizing your profiles is a different thing. The IGPublisher uses Jekyll to render the IG. The various profile views are referenced as fragment files that Jekyll grabs and incorporates. If you hand-craft a page, you can include links to fragments from multiple profiles on a single page if you wanted. I don't have any examples because, to my knowledge, no one has done this. (Hand-crafting tends to be low on peoples' list of desired activities :))

view this post on Zulip Eric Haas (Jan 11 2018 at 19:08):

Specifically how to do this - assuming you know how to use liquid syntax you can grab fragments like this:

<!-- ============ CONTENT CONTENT=============== -->
{% case '{{[type]}}' %} <!-- content depends on type -->
{% when 'ValueSet' %}
<!-- ============VAlUESET CONTENT CONTENT=============== -->

  {% include {{[type]}}-{{[id]}}-summary.xhtml %}
  {% include {{[type]}}-{{[id]}}-xref.xhtml %}
  {% include {{[type]}}-{{[id]}}-cld.xhtml %}

  <h3>Expansion</h3>

  {% include {{[type]}}-{{[id]}}-expansion.xhtml %}
<!-- ============VAlUESET CONTENT CONTENT=============== -->

and stick it wherever you want. look at the template files like sd.html to see how is done.

view this post on Zulip abhishek gupta (Jan 12 2018 at 09:46):

Hi All,
I want to organize my profiles through IG Publisher.
Lets suppose I have one main PFT Profile and inside this folder Different different child profiles are there. so i want to organize them in IG.
How can we do that if anybody knows ping me.I also attached my main profile and child profile.
structuredefinition-PulmonaryFunctionTest.xml
structuredefinition-BodyPostition.xml

view this post on Zulip Lloyd McKenzie (Jan 12 2018 at 15:40):

Well, BodyPosition probably shouldn't be a separate profile. It's not a useful Observation by itself - you'd want to convey it as a component of whatever test was done with that body position.

view this post on Zulip Lloyd McKenzie (Jan 12 2018 at 15:40):

Meaning that your PulmonaryFunctionTest should include BodyPosition as part of the profile, not as a separate profile

view this post on Zulip abhishek gupta (Jan 16 2018 at 05:00):

@Lloyd McKenzie
so what should I do for this means how can I put these profiles in ig publisher(ig.xml,ig.json)

view this post on Zulip Lloyd McKenzie (Jan 16 2018 at 05:05):

Well, to start, decide what makes sense to be in a single Observation - recognizing that each Observation instance needs to be useful by itself. Your profiles might well include some which will include components to convey additional nuances/qualifiers of the main observation that wouldn't make sense on their own. Once you've got your profile boundaries figured out, you can figure out how you need to organize those profiles in your IG. If you use one of the frameworks used by one of the existing HL7 IGs, you'll end up with a few pages for each profile and will then link/organize them with the ad-hoc pages that provide the navigation for your IG. If that's not going to work for you, you'll have to get more into the guts of how the IGPublisher works and define your own framework. That's going to mean getting familiar with how Jekyll works, how the existing frameworks work, what different fragments the IGPublisher can produce, modeling out what you want the eventual HTML to look like and then putting it all together. (And that whole process isn't really one we can walk you through here - it'll probably take you anywhere from one to several weeks of messing around if you want to build your own framework.)

view this post on Zulip abhishek gupta (Jan 19 2018 at 05:52):

Hi All,
At running time of Implementation Guide,I am not able to get my child profiles.
Exception is showing like:
Untitled.png
if anybody have idea about that ping me

view this post on Zulip Lloyd McKenzie (Jan 19 2018 at 15:52):

It seems suspect that you're referencing bodyPosition as a stand-alone profile. If it's a component of an Observation, it wouldn't have its own profile (and wouldn't be referenced in the ig file)

view this post on Zulip abhishek gupta (Jan 22 2018 at 09:38):

Hi All,
can anybody tell me where I can find the build.fhir.org Implementation Guide project(source code).
if anybody know then send me the source code link of that project.

view this post on Zulip Lloyd McKenzie (Jan 22 2018 at 15:36):

Are you wanting the source code for the FHIR core spec hosted at build.fhir.org, or are you wanting the source code for one of the implementation guides?

view this post on Zulip abhishek gupta (Jan 23 2018 at 11:03):

I am wanting the source code for the FHIR core spec hosted at build.fhir.org
help me to find out that code

view this post on Zulip Lloyd McKenzie (Jan 23 2018 at 15:57):

https://gforge.hl7.org/svn/fhir/trunk/build

view this post on Zulip Lloyd McKenzie (Jan 23 2018 at 15:58):

You can use "anonymous" as your userid and no password if you just want read-only access. Out of curiousity, what are you hoping to do with the source?

view this post on Zulip abhishek gupta (Jan 25 2018 at 12:26):

@Lloyd McKenzie
https://gforge.hl7.org/svn/fhir/trunk/build
it is not looking like build.fhir.org
please send me the proper url for downloading the complete implementation guide of build.fhir.org

view this post on Zulip Lloyd McKenzie (Jan 25 2018 at 14:42):

First, the core spec isn't an implementation guide. Second, the link I sent you is the source for the full specification. You need to run the publication process to generate the spec. If you just want a downloadable version of the spec, you can find that at http://build.fhir.org/downloads.html. Can you explain what it is you're wanting to do?

view this post on Zulip abhishek gupta (Jan 27 2018 at 05:52):

@Lloyd McKenzie
I want the source code for the core spec.I will send you one screenshot for your clear understanding.
Untitled1.png
In this when we are clicking on the Profiles&Extensions then all the resource related profiles and extensions are coming.
in the same way suppose if I will put my PFT or EKG profile under the DiagnosticReport then it will show same as profiles&Extensions page.
so can you please help me to get the source code of whole project

view this post on Zulip Lloyd McKenzie (Jan 27 2018 at 12:45):

The only way you could have your PFT or EKG profiles published as part of the core specification is if they were balloted by HL7 as part of the international standard. If you're looking to increase the discoverability of your content, you can register it in HL7's registry. And if you publish your material using HL7's implementation guide tooling, you can have links between your content and the underlying FHIR standard. But there's no mechanism to have links go the other way except through the registry.

view this post on Zulip abhishek gupta (Jan 27 2018 at 19:44):

@Lloyd McKenzie
At running time of IG,I am getting one Exception related to fhir Untitled2.png

view this post on Zulip Lloyd McKenzie (Jan 27 2018 at 20:11):

And do you have any spreadsheets in your IG that don't have any rows?

view this post on Zulip Lloyd McKenzie (Jan 27 2018 at 20:11):

Or have an empty row before you have rows?

view this post on Zulip Lloyd McKenzie (Jan 27 2018 at 20:11):

(You can't have any blank lines until the end)

view this post on Zulip abhishek gupta (Jan 28 2018 at 04:57):

@Lloyd McKenzie
I don't have any spreadsheets in my IG

view this post on Zulip abhishek gupta (Jan 28 2018 at 04:59):

@Lloyd McKenzie
ig.xml
My IG is showing like that

view this post on Zulip abhishek gupta (Jan 28 2018 at 05:10):

@Lloyd McKenzie
I also send you ig.json file for your clear understandingig.json
there are no empty rows but still I am getting the same Exception

view this post on Zulip Lloyd McKenzie (Jan 28 2018 at 05:35):

Does the vms-PulmonaryFunctionTest have any content? How is it defined?

view this post on Zulip abhishek gupta (Jan 28 2018 at 06:55):

@Lloyd McKenzie
I am defining in the following wayvms-PulmonaryFunctionTest.structuredefinition.xml
please help me to solve this problem.
Thanks

view this post on Zulip Lloyd McKenzie (Jan 28 2018 at 12:15):

Your profile is referencing a whole lot of other profiles - none of which are defined in your implementation guide or inherited from a parent implementation guide

view this post on Zulip Lloyd McKenzie (Jan 28 2018 at 12:17):

BTW: confoundingFactors, bodyPosition and bronchial challenge should actually be sent as components of all of your individual observations. That's because any one of the leaf-level observations might be looked at on its own without the DiagnosticReport around to provide context. FHIR doesn't allow context inheritance - so declaring something on the DiagnosticReport doesn't eliminate the need to declare it as well on anything linked to from the DiagnosticReport.

view this post on Zulip abhishek gupta (Jan 28 2018 at 13:19):

@Lloyd McKenzie
so you mean that whatever profiles are mentioned inside the vms-PulmonaryFunctionTest, all profiles have to declare in ig.json,ig.xml and in the resource folder

view this post on Zulip Lloyd McKenzie (Jan 28 2018 at 13:42):

Or inherited from a referenced IG or from the version of the core spec you're building on top of, yes.

view this post on Zulip Lloyd McKenzie (Jan 28 2018 at 13:43):

If you want to start simple, comment out most of your profile and get that to build, then uncomment bits as you start defining more of the observation profiles

view this post on Zulip abhishek gupta (Jan 28 2018 at 14:20):

@Lloyd McKenzie
can you send me some examples where this type of hierarchy will happen

view this post on Zulip Lloyd McKenzie (Jan 28 2018 at 14:34):

I'm not sure what you mean by "hierarchy". Your IG will just have a bunch of profiles. There's no intrinsic hierarchy to them. Though, in your case, there will be at least some degree of relationships between the profiles

view this post on Zulip abhishek gupta (Jan 28 2018 at 17:57):

@Lloyd McKenzie
I follow the same procedure whatever you tell me above but still I am not able to solve the Exception.
I will share you my resource files,whatever extensions I used and ig.json,ig.xml file.
after observing these files if you have any idea where I am getting wrong then Please tell me.
1)Resource file(I put resouce file into my Resource folder)
vms-PulmonaryFunctionTest.structuredefinition.xml

2)extensions(I put extensions in Example folder)
BodyPostition.xml
BronchialChallenge.xml
ConfoundingFactors.xml

3)ig.json
ig.json

4)ig.xml
ig.xml

In these case when I am running the Implementation Guide then I am getting the Exception like that:
Untitled3.png

Please help me to solve this issue

view this post on Zulip Lloyd McKenzie (Jan 28 2018 at 19:57):

BodyPosition, BronchialChallenge, etc. need to be StructureDefinitions, not Observations

view this post on Zulip abhishek gupta (Jan 29 2018 at 06:30):

@Lloyd McKenzie
I also put the BodyPosition,BronchialChallenge,ConfoundingFactors as StructureDefinitions but still I am getting the Same Exception

view this post on Zulip Lloyd McKenzie (Jan 29 2018 at 06:33):

Can you zip up your full build environment? I'll run it in debug mode and see what's wrong.

view this post on Zulip abhishek gupta (Jan 29 2018 at 06:33):

@Lloyd McKenzie
BodyPostition.xml
BronchialChallenge.xml
ConfoundingFactors.xml
vms-PulmonaryFunctionTest.structuredefinition.xml
ig.xml
ig.json

please help me figure out this problem I tried for so many days
Untitled3.png

view this post on Zulip Lloyd McKenzie (Jan 29 2018 at 06:35):

I need you to zip up your build folder so that everything is in the same relative folders you have on your own machine. Then post the zip.

view this post on Zulip Lloyd McKenzie (Jan 29 2018 at 06:36):

I'll look at it tomorrow morning.

view this post on Zulip abhishek gupta (Jan 29 2018 at 06:39):

@Lloyd McKenzie
when I zip my code it is taking 61 MB file size which is not able to send ,then how can I send

view this post on Zulip abhishek gupta (Jan 29 2018 at 07:04):

@Lloyd McKenzie
I'll share you my full build code
US-Core-27.rar

view this post on Zulip abhishek gupta (Jan 29 2018 at 11:58):

Hi all,
can anybody tell me the difference between the example value="false" and example value="true" in ig.xml(Implementation Guide)

view this post on Zulip Lloyd McKenzie (Jan 29 2018 at 12:32):

I just need the source folders

view this post on Zulip abhishek gupta (Jan 29 2018 at 12:42):

@Lloyd McKenzie
i'll share you my source folder
US-Core-27.rar

view this post on Zulip abhishek gupta (Jan 29 2018 at 13:10):

@Lloyd McKenzie
have you find where I am getting wrong

view this post on Zulip Lloyd McKenzie (Jan 29 2018 at 13:38):

The HL7 Working Group is happening this week, so I'll be working on this when I'm not occupied by meetings. I'll let you know as soon as I find something

view this post on Zulip abhishek gupta (Jan 29 2018 at 13:42):

@Lloyd McKenzie
ok I will be wait

view this post on Zulip Lloyd McKenzie (Jan 29 2018 at 18:00):

First issue is you have an invalid filename for BodyPosition (currently says BodyPostition). The "no rows" issue is actually a known issue with the IGPublisher. StructureDefinition.differential is supposed to be able to be sparse - where you only include those nodes that have changed. However, at the moment, you need to include the "anchor" elements that define the hierarchy. I.e. the parent nodes of all elements listed in the differential, including the root node have to be included. I've raised a tracker item (GF#14953]) to make sure this is addressed.

view this post on Zulip Lloyd McKenzie (Jan 29 2018 at 18:00):

Sorry it took so long for us to have time to dig into this and resolve it for you

view this post on Zulip abhishek gupta (Jan 30 2018 at 04:47):

@Lloyd McKenzie
so what should I put my filename.I put like that(BodyPosition.structuredefinition.xml)

view this post on Zulip Lloyd McKenzie (Jan 30 2018 at 04:48):

That's fine. The problem was the actual filename in the zip was "Postition" rather than "Position" (just a small typo)

view this post on Zulip abhishek gupta (Jan 30 2018 at 04:50):

@Lloyd McKenzie
you are saying that in the BodyPosition I have to kept the ID as Bodyposition

view this post on Zulip abhishek gupta (Jan 30 2018 at 04:51):

@Lloyd McKenzie
can you send me that file with the correction I will be very thankful to you

view this post on Zulip abhishek gupta (Jan 30 2018 at 04:55):

@Lloyd McKenzie
that error I fix it but another Exception will be coming.
Fhir Exception:Must have rows.
How can I handle that error
Untitled4.png

view this post on Zulip Lloyd McKenzie (Jan 30 2018 at 05:08):

I explained that above. (And included the link to the issue report that will eventually fix it). For now you will need to add elements into your differential such that all "parent" elements are present. For example, the "Extension" element.

view this post on Zulip Lloyd McKenzie (Jan 30 2018 at 05:09):

That said, I just want to make sure that you didn't miss my earlier comment where I indicated that you shouldn't actually be using "extension" to capture body position. That can (and should) be captured as an Observation.component...

view this post on Zulip abhishek gupta (Jan 30 2018 at 11:38):

@Lloyd McKenzie
but it is not under the observation.The "PulmonaryFunctionTest" profile comes under the "DiagnosticReport" and inside the DiagnosticReport ,extensions(bodyPosition,bronchialChallenge,confoundingFactors) will be used

view this post on Zulip Lloyd McKenzie (Jan 30 2018 at 13:12):

Point 1: You shouldn't use an extension for bodyPosition or bronchial challenge or confounding factors - you should use Observation.component
Point 2: When you define your differential, you must include the parents for all elements that appear in your differential - So "DiagnosticReport" or "Observation" or whatever else is needed as a minimum, but possibly backbone elements like Observation.component or other things too. Essentially the differential must be something that's organized into a tree.
Point 2 is only temporary. Hopefully soon we'll fix that particular bug in the tooling and differentials will be able to be truly sparse again

view this post on Zulip Brian Postlethwaite (Jan 30 2018 at 22:24):

(Should this topic be in the committers stream?)

view this post on Zulip Eric Haas (Jan 30 2018 at 22:28):

not a committer, an ig-pub-user

view this post on Zulip Brian Postlethwaite (Jan 30 2018 at 22:42):

(So a not created yet IG creators stream?)

view this post on Zulip Eric Haas (Jan 30 2018 at 22:48):

there is now....https://chat.fhir.org/#narrow/stream/IG.20creation - how do I announce this to everyone?

view this post on Zulip Lloyd McKenzie (Jan 31 2018 at 02:24):

New streams can be posted to Announcements. (@Josh Mandel, can we get the stream announcement bot from HL7 running on this one too?)

view this post on Zulip Josh Mandel (Jan 31 2018 at 02:29):

I'm unclear on the request.

view this post on Zulip abhishek gupta (Jan 31 2018 at 05:47):

Hi all,
I wanted the full github Implementation Guide code of build.fhir.org.
I also attached some screenshot whatever my requirment is:
Untitled6.png
Untitled7.png
i wanted to find out how the each pages will be putting and where it will be organized.
if anybody knows about that code then please send me the link for finding that code

view this post on Zulip Josh Mandel (Jan 31 2018 at 06:21):

http://github.com/hl7-fhir/fhir-svn is the fhir build repository. It is a Java program that outputs the specification you showed in your screenshot.

view this post on Zulip abhishek gupta (Jan 31 2018 at 07:29):

Hi all,
when I am creating the Implementation Guide then I am able to get the Structure like that:
Untitled10.png
But when I am adding the more pages then I am not able to get the extra added pages like that:
Untitled11.png
in this case I am not able to get my extensions,profiles,operation,examples pages.
can anybody tell me where I need to configure to get those pages.

view this post on Zulip abhishek gupta (Jan 31 2018 at 12:56):

@Lloyd McKenzie
Hi previously you are saying that don't use the Extension for bodyposition ,But the resource used to create the PFT profile is DiagnosticReport not Observation. DiagnosticReport does not have the element component. Where can I capture the confounding factors, body position and bronchial challenge?

view this post on Zulip Lloyd McKenzie (Jan 31 2018 at 13:52):

Let me summarize what's already been shared in this thread:
1. build.fhir.org is the full specification, not an implementation guide
2. The source is (currently) hosted in HL7's Subversion repository, not git-hub
3. The source is hosted here: https://gforge.hl7.org/svn/fhir/trunk/build
4. What's hosted there is the source, not the actual pages we publish
5. If you want the published pages, you can download the spec as a zip at http://build.fhir.org/downloads.html
6. Theres's no way to have the core specification point to your profiles unless you go through the HL7 balloting process - and for that, they'd need to be globally applicable (so if that's still your objective, getting the source won't help you). Instead, you should publish using the IGPublisher like everyone else and register your content in http://registry.fhir.org

view this post on Zulip Lloyd McKenzie (Jan 31 2018 at 13:52):

Hopefully that helps

view this post on Zulip Lloyd McKenzie (Jan 31 2018 at 13:52):

Body position, confounding factors, etc. should be captured on each observation in your diagnostic report (just like you'll link to patient, lab, specimen, etc). In FHIR, every observation needs to stand alone, you can't inherit anything from the diagnostic report. I suppose if you really wanted to you could put these elements on the DiagnosticReport too and you're correct that this information would need to be extensions there. However, I'd recommend verifying that this is something the consumer of the report really needs.

view this post on Zulip abhishek gupta (Feb 01 2018 at 13:07):

Hi all,
how to create webpages of Examples,Extensions,Operations for MedicationStatement profile in Implementation Guide and tell me where we can organize them(means I want to know where the page link will be)

view this post on Zulip Lloyd McKenzie (Feb 01 2018 at 15:31):

Have you looked at one of the other implementation guide projects on gForge and seen how they manage resources and publish them? That's the best place to start.

view this post on Zulip Eric Haas (Feb 01 2018 at 20:52):

Here is an IG Sampler I put together. Is a bit stale an needs some refactoring but it works for everything.

view this post on Zulip abhishek gupta (Feb 02 2018 at 06:36):

@Lloyd McKenzie
from where I can get the Implementation guide projects on gForge .can you provide me the link for that.

view this post on Zulip Eric Haas (Feb 02 2018 at 07:25):

abhishek... GForge is for logging trackers against the IG or FHIR Spec....see the link above ... that shows all the artifacts you need to create an ig as well as provides link to how to use the ig publisher.

view this post on Zulip abhishek gupta (Feb 02 2018 at 09:27):

@Eric Haas
I want to generate the Examples,Profiles&Extensions,Operations web pages in the implementation guide.I saw your previous link(IG sampler)But I am unable to generate the web pages

view this post on Zulip abhishek gupta (Feb 02 2018 at 11:38):

Hi all,
when I am generating the example web page in Implementation Guide,then at running time (liquid Exception)Jekyll could not locate my included file 'list-simple-examples.xhtml' getting.
I followed the steps like:
1)pages/examples.html(put my examples.md)
2)pages/_includes/examples.md(put my {% include list-simple-examples.xhtml %} )
if anybody have an idea about that where I am getting wrong ping me

view this post on Zulip Eric Haas (Feb 02 2018 at 14:28):

WE have created a separate stream: https://chat.fhir.org/#narrow/stream/IG.20creation for all Implementation Guide related questions. Please post your question there.


Last updated: Apr 12 2022 at 19:14 UTC