Stream: implementers
Topic: Implementation Guide(IG) Creation
Janaka Peiris (Mar 26 2021 at 05:57):
Hi,
I'm trying to generate an IG using the publisher GUI tool (https://confluence.hl7.org/pages/viewpage.action?pageId=35718627#IGPublisherDocumentation-RunninginGUImode) and have issues getting it to create output.
-
I'm using an ig.ini with minimal files (no resources, just a few example .md pages from source https://build.fhir.org/ig/hl7dk/dk-core/ as it is ) so I can test the GUI tool works fine first and see the output it generates.
-
As shown below, its stuck at "Jekyll: Generating...". I checked the troubleshooting options in the documentation here : https://confluence.hl7.org/pages/viewpage.action?pageId=35718627#IGPublisherDocumentation-Troubleshooting
image.png
So I kept it to run, but even after hours its still stuck at this level.
- I tried to enable logging as per https://confluence.hl7.org/display/FHIR/Implementation+Guide+Parameters. Still I dont see any log files
@Grahame Grieve is there any other troubleshooting steps I can follow, (so you don't have to repeat answers).
Thanks in advance. IG_publisher_gui-tool.png
Jose Costa Teixeira (Mar 26 2021 at 07:12):
Hi @Janaka Peiris normally the publication should not take more than 2 minutes for an empty IG
Jose Costa Teixeira (Mar 26 2021 at 07:13):
I presume jekyll is installed correctly.
Janaka Peiris (Mar 26 2021 at 07:13):
Thanks @Jose Costa Teixeira , that's information for me, so it must have been stuck.
Jose Costa Teixeira (Mar 26 2021 at 07:14):
in a command line prompt, type jekyll -v
- does it respond with a version?
Jose Costa Teixeira (Mar 26 2021 at 07:14):
you can try to make an empty jekyll site but that is perhaps unnecessary
Jose Costa Teixeira (Mar 26 2021 at 07:14):
if you added the few example md pages, did you add them to the implementationguide xml or json file?
Jose Costa Teixeira (Mar 26 2021 at 07:15):
also, are you afraid of command line? It may be helpful in debugging or finding an alternative.
Jose Costa Teixeira (Mar 26 2021 at 07:15):
some GUIs (not sure if the publisher gui has that issue) have some buffer so there is perhaps some more info that is not shown on your screen.
Janaka Peiris (Mar 26 2021 at 07:16):
jekyll -v :
jekyll 4.2.0
Yes, I'm actually using the same DK-core IG xml, without references to resources that I removed. So it still have all references to original .md files. Ok, i'll try command line now .
Jose Costa Teixeira (Mar 26 2021 at 07:17):
command line - want to try a few things?
Jose Costa Teixeira (Mar 26 2021 at 07:17):
windows or unix?
Janaka Peiris (Mar 26 2021 at 07:20):
Windows 10 Pro
Janaka Peiris (Mar 26 2021 at 07:29):
Now I get the logging in file fhir-ig-publisher-tmp.log, which is the same as cmd line output. So 2) and 3) are answered now.
@Jose Costa Teixeira the cmd line shows 2 errors prior to the generation process starts. It seems like tool expects an XSLT file but referring to image PNG files. Since it's not an XML, it gives an error. But the generation process has continued.
logging output:
onGenerate:
Error on line 1 column 1
SXXP0003: Error reported by XML parser: Invalid byte 1 of 1-byte UTF-8 sequence.
Exception generating xslt page D:\_dev\Git_Repo\DIPS\DIPS_SL\FhirImplementationGuide\R4\temp\pages\_includes\assets\images\fhir-logo-www.png for _includes\assets\images\fhir-logo-www.png in D:\_dev\Git_Repo\DIPS\DIPS_SL\FhirImplementationGuide\R4\temp\pages: org.xml.sax.SAXParseException; lineNumber: 1; columnNumber: 1; Invalid byte 1 of 1-byte UTF-8 sequence. (00:31.0212)
Error on line 1 column 1
SXXP0003: Error reported by XML parser: Invalid byte 1 of 1-byte UTF-8 sequence.
Exception generating xslt page D:\_dev\Git_Repo\DIPS\DIPS_SL\FhirImplementationGuide\R4\temp\pages\_includes\assets\images\hl7-logo.png for _includes\assets\images\hl7-logo.png in D:\_dev\Git_Repo\DIPS\DIPS_SL\FhirImplementationGuide\R4\temp\pages: org.xml.sax.SAXParseException; lineNumber: 1; columnNumber: 1; Invalid byte 1 of 1-byte UTF-8 sequence. (00:31.0231)
Generating Summary Outputs (00:31.0248)
Sending Usage Stats to Server (00:42.0302)
Memory (MB): Use = 394, Free = 273, Total = 668, Max =8164
Reclaiming memory...
Memory (MB): Use = 125, Free = 342, Total = 468, Max =8164
Jekyll: Source: D:/_dev/Git_Repo/DIPS/DIPS_SL/FhirImplementationGuide/R4/temp/pages (00:43.0975)
Jekyll: Generating... (00:43.0977)
Sending usage stats failed: Connection timed out: connect
Jose Costa Teixeira (Mar 26 2021 at 07:32):
yeah that seems broken
Jose Costa Teixeira (Mar 26 2021 at 07:32):
your IG, not the publisher
Jose Costa Teixeira (Mar 26 2021 at 07:36):
when I try to build the original dk-core, I see that issue but it does proceed to Done!. doesn't yours?
Jose Costa Teixeira (Mar 26 2021 at 07:38):
the issue seems to be because there is no logo in the template but that is another discussion.
Jose Costa Teixeira (Mar 26 2021 at 07:39):
@Janaka Peiris are you starting with this IG because
a) you want to get this one working
b) you are starting with IGs and want to start with a simple , small IG ?
Janaka Peiris (Mar 26 2021 at 07:40):
its b)
Once I know what this generates, then I'll edit the contents as I need. Just picked up a simpler looking IG for testing.
Jose Costa Teixeira (Mar 26 2021 at 07:41):
https://github.com/hl7-be/empty-ig
Jose Costa Teixeira (Mar 26 2021 at 07:41):
this one is empty (has a different logo) but you can add content to this one.
Jose Costa Teixeira (Mar 26 2021 at 07:42):
the folder structure is slightly different
Janaka Peiris (Mar 26 2021 at 07:42):
sure, will try this one
Jose Costa Teixeira (Mar 26 2021 at 07:42):
if you want to have one that is closer in structure to the DK one, you can follow these instructions:
Jose Costa Teixeira (Mar 26 2021 at 07:45):
just create a folder, and inside that folder type sushi --init. answer a few questions and you have an IG
Janaka Peiris (Mar 26 2021 at 08:25):
Thanks a lot @Jose Costa Teixeira . I installed Sushi, and did just as you said. Now it works, even though the folder structure is a bit different. I should be able to continue my actual IG editing work now. Never knew there is a project called Sushi or FHIR Short Hand (https://build.fhir.org/ig/HL7/fhir-shorthand/). Thanks again !
Jose Costa Teixeira (Mar 26 2021 at 08:26):
if you are starting with this, I recommend using sushi. Try the fshschool.org.
Jose Costa Teixeira (Mar 26 2021 at 08:26):
the folder difference is not that significative and perhaps we can reduce the difference.
Jose Costa Teixeira (Mar 26 2021 at 08:27):
have fun
Sayali Pophalkar (Jul 23 2021 at 07:07):
Hello all,
Is there any CapabilityStatement for an Implementation Guide?
or Can we have it?
-Thanks & Regards,
Sayali
Eric Haas (Jul 23 2021 at 13:41):
?
Lloyd McKenzie (Jul 23 2021 at 13:49):
@Sayali Pophalkar you'll need to explain more - what are you trying to achieve?
Sayali Pophalkar (Jul 26 2021 at 04:09):
Hello @Eric Haas & @Lloyd McKenzie ,
Like we have a CapabilityStatement for the FHIR server to describe its capabilities, can we have the same for IG?
-Thanks & Regards,
Sayali
Richard Townley-O'Neill (Jul 26 2021 at 04:13):
Do you want to describe the capabilities of an IG?
Richard Townley-O'Neill (Jul 26 2021 at 04:13):
An IG does not do anything, it does not have capabilities.
It describes something, but does not do anything.
Sayali Pophalkar (Jul 26 2021 at 04:17):
@Richard Townley-O'Neill ,
Thank you for the explanation! :)
Kumar Satyam (Jul 26 2021 at 04:19):
@Sayali Pophalkar what exactly are you intending to do.
Sayali Pophalkar (Jul 26 2021 at 04:34):
Hello @Kumar Satyam,
I just wanted to confirm that whether we can have CS for an IG to describe all its headers and know what this IG tells programmatically just the same as SC of an FHIR server. I never saw or heard about CS for and IG but just wanted to make sure. :)
-regards,
Sayali
Lloyd McKenzie (Jul 26 2021 at 14:42):
Actually, most IGs will have CapabilityStatements - those instances are used to define the expected behavior of systems that conform with an IG
Lloyd McKenzie (Jul 26 2021 at 14:43):
US Core has them. SDC has them. Most of the Da Vinci IGs have them. If you have an IG that sets expectations about REST, messaging or document behavior of one or more types of systems, you'll have CapabilityStatements that define the expected behavior of those systems.
Last updated: Apr 12 2022 at 19:14 UTC