I have tried many different iterations of this, using other answered questions on here and I am just not getting this right. This is my code:
CREATE PROCEDURE [dbo].[ImportHCCAssessment]
AS
DECLARE
@SecurityUserId uniqueidentifier = 'EBE4BD0F-DD05-4A6E-BFE8-BF5CAC0CF4C5',
@SecurityUserContextId uniqueidentifier = '42CACC5F-3DA7-45E5-A656-15A3570A444C',
@AssessmentTemplateId uniqueidentifier =
(
SELECT AssessmentTemplateId
FROM MedCompass.dbo.AssessmentTemplate
WHERE TemplateName = 'Hierarchical Condition Category'
AND ActiveFlag = 1
)
---HCC Assessment Generate XML for Insert
;WITH HCC AS (
SELECT *
FROM MemberHCC
UNPIVOT
(HCCValue FOR HCCCode IN
( HCC001, HCC002, HCC006, HCC008, HCC009, HCC010, HCC011, HCC017, HCC018, HCC019, HCC021, HCC022, HCC023, HCC027, HCC028,
HCC029, HCC033, HCC034, HCC035, HCC039, HCC040, HCC046, HCC047, HCC048, HCC051, HCC052, HCC054, HCC055, HCC056, HCC057,
HCC058, HCC059, HCC060, HCC070, HCC071, HCC072, HCC073, HCC074, HCC075, HCC076, HCC077, HCC078, HCC079, HCC080, HCC082,
HCC083, HCC084, HCC085, HCC086, HCC087, HCC088, HCC096, HCC099, HCC100, HCC103, HCC104, HCC106, HCC107, HCC108, HCC110,
HCC111, HCC112, HCC114, HCC115, HCC122, HCC124, HCC134, HCC135, HCC136, HCC137, HCC138, HCC157, HCC158, HCC159, HCC161,
HCC162, HCC166, HCC167, HCC169, HCC170, HCC173, HCC176, HCC186, HCC188, HCC189)
) AS unpvt
WHERE RecordTypeCode = 'J'
)
SELECT (
SELECT GeneratedGuid AS "@id"
, 'Question' AS "@language"
, 'true' AS "@hasPrepopulated"
, '0' AS "Score/@Column"
, 'true' AS "Score/@IncInRollup"
, '' AS "Score/@Method"
, '' AS "Score/@ScoreName"
, '0' AS "Score/@Value"
, ap.AssessmentPageId AS "Page/@id"
, 'Visible' AS "Page/@InitialState"
, 'true' AS "Page/@IsEnabled"
, 'false' AS "Page/@IsRequired"
, '0' AS "Page/Score/@Column"
, 'true' AS "Page/Score/@IncInRollup"
, '' AS "Page/Score/@Method"
, '' AS "Page/Score/@ScoreName"
, '0' AS "Page/Score/@Value"
, atb.AssessmentTabId AS "Page/Tab/@id"
, 'Visible' AS "Page/Tab/@InitialState"
, 'true' AS "Page/Tab/@IsEnabled"
, 'false' AS "Page/Tab/@IsRequired"
, '0' AS "Page/Tab/Score/@Column"
, 'true' AS "Page/Tab/Score/@IncInRollup"
, '' AS "Page/Tab/Score/@Method"
, '' AS "Page/Tab/Score/@ScoreName"
, '0' AS "Page/Tab/Score/@Value"
, asec.AssessmentSectionId AS "Page/Tab/Section/@id"
, 'Visible' AS "Page/Tab/Section/@InitialState"
, 'true' AS "Page/Tab/Section/@IsEnabled"
, 'false' AS "Page/Tab/Section/@IsRequired"
, '1' AS "Page/Tab/Section/@Sequence"
, 'false' AS "Page/Tab/Section/@Repeatable"
, '1' AS "Page/Tab/Section/@RepeatedSequence"
, '1' AS "Page/Tab/Section/@ActiveFlag"
, '1' AS "Page/Tab/Section/@EditFlag"
, '0' AS "Page/Tab/Section/Score/@Column"
, 'true' AS "Page/Tab/Section/Score/@IncInRollup"
, '' AS "Page/Tab/Section/Score/@Method"
, '' AS "Page/Tab/Section/Score/@ScoreName"
, '0' AS "Page/Tab/Section/Score/@Value"
, aq.AssessmentQuestionId AS "Page/Tab/Section/Question/@id"
, 'Visible' AS "Page/Tab/Section/Question/@InitialState"
, 'true' AS "Page/Tab/Section/Question/@IsEnabled"
, 'false' AS "Page/Tab/Section/Question/@IsRequired"
, 'a3e1965c-d050-4709-a554-644564722c54' AS "Page/Tab/Section/Question/@Code"
, 'false' AS "Page/Tab/Section/Question/@DisplayCode"
, '0' AS "Page/Tab/Section/Question/Score/@Column"
, 'true' AS "Page/Tab/Section/Question/Score/@IncInRollup"
, '' AS "Page/Tab/Section/Question/Score/@Method"
, '' AS "Page/Tab/Section/Question/Score/@ScoreName"
, '0' AS "Page/Tab/Section/Question/Score/@Value"
, aa.AssessmentAnswerId AS "Page/Tab/Section/Question/Answer/@id"
, 'CheckBox' AS "Page/Tab/Section/Question/Answer/@Type"
, 'Visible' AS "Page/Tab/Section/Question/Answer/@InitialState"
, 'true' AS "Page/Tab/Section/Question/Answer/@IsEnabled"
, 'false' AS "Page/Tab/Section/Question/Answer/@IsRequired"
, 'false' AS "Page/Tab/Section/Question/Answer/@copy"
, '1' AS "Page/Tab/Section/Question/Answer/@Sequence"
, 'false' AS "Page/Tab/Section/Question/Answer/@IncInSummary"
, '' AS "Page/Tab/Section/Question/Answer/@SummaryTitle"
, 'false' AS "Page/Tab/Section/Question/Answer/@AlphaSorting"
, 'b94ec9a9-77eb-41da-b62d-9f7d70b2f2d4' AS "Page/Tab/Section/Question/Answer/@Code"
, 'false' AS "Page/Tab/Section/Question/Answer/@DisplayCode"
, 'false' AS "Page/Tab/Section/Question/Answer/@DisplayAnswerName"
, '' AS "Page/Tab/Section/Question/Answer/@Value"
, '1' AS "Page/Tab/Section/Question/Answer/@QuestionSequence"
, (
SELECT ali.AssessmentListItemId AS "Page/Tab/Section/Question/Answer/ListItem/@ListItemId"
, '0.00' AS "Page/Tab/Section/Question/Answer/ListItem/@Score1"
, '0.00' AS "Page/Tab/Section/Question/Answer/ListItem/@Score2"
, '0.00' AS "Page/Tab/Section/Question/Answer/ListItem/@Score3"
, '' AS "Page/Tab/Section/Question/Answer/ListItem/@Score1ProgramTypeKey"
, '' AS "Page/Tab/Section/Question/Answer/ListItem/@Score2ProgramTypeKey"
, '' AS "Page/Tab/Section/Question/Answer/ListItem/@Score3ProgramTypeKey"
, HCCValue AS "Page/Tab/Section/Question/Answer/ListItem/@Selected"
, '0' AS "Page/Tab/Section/Question/Answer/ListItem/@Sequence"
, '' AS "Page/Tab/Section/Question/Answer/ListItem/@FullDescription"
FROM HCC hcc
JOIN MedCompass.dbo.AssessmentListItem ali
ON LEFT(ali.ListItem, 6) = hcc.HCCCode
FOR XML PATH ('ListItem'), TYPE
)
FOR XML PATH ('Assmt')
) XMLfile
, hcc.MBI
, GeneratedGuid
INTO #XMLTempHCC
FROM MemberHCC hcc
JOIN MedCompass.dbo.AssessmentTemplate atp
ON 1 = 1
AND atp.AssessmentTemplateId = @AssessmentTemplateId
JOIN MedCompass.dbo.AssessmentPage ap
ON ap.AssessmentTemplateId = atp.AssessmentTemplateId
AND atp.AssessmentTemplateId = @AssessmentTemplateId
JOIN MedCompass.dbo.AssessmentTab atb
ON atb.AssessmentPageId = ap.AssessmentPageId
JOIN MedCompass.dbo.AssessmentSection asec
ON asec.AssessmentTabId = atb.AssessmentTabId
JOIN MedCompass.dbo.AssessmentQuestion aq
ON aq.AssessmentSectionId = asec.AssessmentSectionId
JOIN MedCompass.dbo.AssessmentAnswer aa
ON aa.AssessmentQuestionId = aq.AssessmentQuestionId
JOIN MedCompass.dbo.AssessmentList al
ON aa.AssessmentListId = al.AssessmentListId
LEFT JOIN (
SELECT NEWID() AS GeneratedGuid
) AS GG
ON 1 = 1
This is the XML format I'm trying to get:
<Assmt id="e4b67b25-1724-4c5f-81da-a3bec923822c" language="Question" hasPrepopulated="true">
<Score Column="0" IncInRollup="true" Method="" ScoreName="" Value="0" />
<Page id="c8e3b0c2-d831-460e-b5e2-afa17c4d0035" InitialState="Visible" IsEnabled="true" IsRequired="false">
<Score Column="0" IncInRollup="true" Method="" ScoreName="" Value="0" />
<Tab id="33198335-567f-46fc-93c3-2cc6f2e5dd20" InitialState="Visible" IsEnabled="true" IsRequired="false">
<Score Column="0" IncInRollup="true" Method="" ScoreName="" Value="0" />
<Section id="207293ef-81e6-4d18-8b01-30f63ccf89cc" InitialState="Visible" IsEnabled="true" IsRequired="false" Sequence="1" Repeatable="false" RepeatedSequence="1" ActiveFlag="1" EditFlag="1">
<Score Column="0" IncInRollup="true" Method="" ScoreName="" Value="0" />
<Question id="a56fcb27-7e95-443a-8dd0-c6fb475297c7" InitialState="Visible" IsEnabled="true" IsRequired="false" Code="a3e1965c-d050-4709-a554-644564722c54" DisplayCode="false">
<Score Column="0" IncInRollup="true" Method="" ScoreName="" Value="0" />
<Answer id="55a96555-a420-47f0-b66c-4976f7989933" Type="CheckBox" InitialState="Visible" IsEnabled="true" IsRequired="false" copy="false" Sequence="1" IncInSummary="false" SummaryTitle="" AlphaSorting="false" Code="b94ec9a9-77eb-41da-b62d-9f7d70b2f2d4" DisplayCode="false" DisplayAnswerName="false" Value="" QuestionSequence="1">
<ListItem ListItemId="a89b405a-3735-4d5d-b6cd-9c42e2c8b5fd" Score1="0.00" Score2="0.00" Score3="0.00" Score1ProgramTypeKey="" Score2ProgramTypeKey="" Score3ProgramTypeKey="" Selected="true" Sequence="0" ListItem="HCC001 - HIV/AIDS" FullDescription="" />
<ListItem ListItemId="6cd22662-70bd-41db-ba8a-b8c29dbe6780" Score1="0.00" Score2="0.00" Score3="0.00" Score1ProgramTypeKey="" Score2ProgramTypeKey="" Score3ProgramTypeKey="" Selected="false" Sequence="0" ListItem="HCC002 - Septicemia, sepsis and systemic inflammatory" FullDescription="" />
<ListItem ListItemId="7c5d131c-01ae-4785-8ec2-570cd8f0063d" Score1="0.00" Score2="0.00" Score3="0.00" Score1ProgramTypeKey="" Score2ProgramTypeKey="" Score3ProgramTypeKey="" Selected="false" Sequence="0" ListItem="HCC006 - Opportunistic infections" FullDescription="" />
<ListItem ListItemId="75d6d621-25d8-4915-9cb0-f66ce433ecb1" Score1="0.00" Score2="0.00" Score3="0.00" Score1ProgramTypeKey="" Score2ProgramTypeKey="" Score3ProgramTypeKey="" Selected="true" Sequence="0" ListItem="HCC008 - Metastatic cancer and acute leukemia" FullDescription="" />
<ListItem ListItemId="45de7cfb-33da-465a-871e-2acaabcc63eb" Score1="0.00" Score2="0.00" Score3="0.00" Score1ProgramTypeKey="" Score2ProgramTypeKey="" Score3ProgramTypeKey="" Selected="true" Sequence="0" ListItem="HCC009 - Lung and other severe cancers" FullDescription="" />
<ListItem ListItemId="afd27cc0-36ae-4999-ab4d-5c3877cb12ff" Score1="0.00" Score2="0.00" Score3="0.00" Score1ProgramTypeKey="" Score2ProgramTypeKey="" Score3ProgramTypeKey="" Selected="false" Sequence="0" ListItem="HCC010 - Lymphoma and other cancers" FullDescription="" />
<ListItem ListItemId="d30d214e-3f7a-4902-b687-fb95e5d5b81e" Score1="0.00" Score2="0.00" Score3="0.00" Score1ProgramTypeKey="" Score2ProgramTypeKey="" Score3ProgramTypeKey="" Selected="false" Sequence="0" ListItem="HCC011 - Colorectal, bladder and other cancers" FullDescription="" />
</Answer>
</Question>
</Section>
</Tab>
</Page>
</Assmt>
This is what my above code is producing:
<Assmt id="B2A16DE0-EE05-48CD-95A4-586603BA2B74" language="Question" hasPrepopulated="true">
<Score Column="0" IncInRollup="true" Method="" ScoreName="" Value="0" />
<Page id="C8E3B0C2-D831-460E-B5E2-AFA17C4D0035" InitialState="Visible" IsEnabled="true" IsRequired="false">
<Score Column="0" IncInRollup="true" Method="" ScoreName="" Value="0" />
<Tab id="33198335-567F-46FC-93C3-2CC6F2E5DD20" InitialState="Visible" IsEnabled="true" IsRequired="false">
<Score Column="0" IncInRollup="true" Method="" ScoreName="" Value="0" />
<Section id="207293EF-81E6-4D18-8B01-30F63CCF89CC" InitialState="Visible" IsEnabled="true" IsRequired="false" Sequence="1" Repeatable="false" RepeatedSequence="1" ActiveFlag="1" EditFlag="1">
<Score Column="0" IncInRollup="true" Method="" ScoreName="" Value="0" />
<Question id="A56FCB27-7E95-443A-8DD0-C6FB475297C7" InitialState="Visible" IsEnabled="true" IsRequired="false" Code="a3e1965c-d050-4709-a554-644564722c54" DisplayCode="false">
<Score Column="0" IncInRollup="true" Method="" ScoreName="" Value="0" />
<Answer id="55A96555-A420-47F0-B66C-4976F7989933" Type="CheckBox" InitialState="Visible" IsEnabled="true" IsRequired="false" copy="false" Sequence="1" IncInSummary="false" SummaryTitle="" AlphaSorting="false" Code="b94ec9a9-77eb-41da-b62d-9f7d70b2f2d4" DisplayCode="false" DisplayAnswerName="false" Value="" QuestionSequence="1" />
</Question>
</Section>
</Tab>
</Page>
<ListItem>
<Page>
<Tab>
<Section>
<Question>
<Answer>
<ListItem ListItemId="40ED3DBA-E5AE-45D5-ADA2-520D55DAC3E9" Score1="0.00" Score2="0.00" Score3="0.00" Score1ProgramTypeKey="" Score2ProgramTypeKey="" Score3ProgramTypeKey="" Selected="0" Sequence="0" FullDescription="" />
</Answer>
</Question>
</Section>
</Tab>
</Page>
</ListItem>
<ListItem>
<Page>
<Tab>
<Section>
<Question>
<Answer>
<ListItem ListItemId="40ED3DBA-E5AE-45D5-ADA2-520D55DAC3E9" Score1="0.00" Score2="0.00" Score3="0.00" Score1ProgramTypeKey="" Score2ProgramTypeKey="" Score3ProgramTypeKey="" Selected="0" Sequence="0" FullDescription="" />
</Answer>
</Question>
</Section>
</Tab>
</Page>
</ListItem>
<ListItem>
<Page>
<Tab>
<Section>
<Question>
<Answer>
<ListItem ListItemId="40ED3DBA-E5AE-45D5-ADA2-520D55DAC3E9" Score1="0.00" Score2="0.00" Score3="0.00" Score1ProgramTypeKey="" Score2ProgramTypeKey="" Score3ProgramTypeKey="" Selected="0" Sequence="0" FullDescription="" />
</Answer>
</Question>
</Section>
</Tab>
</Page>
</ListItem>
<ListItem>
<Page>
<Tab>
<Section>
<Question>
<Answer>
<ListItem ListItemId="40ED3DBA-E5AE-45D5-ADA2-520D55DAC3E9" Score1="0.00" Score2="0.00" Score3="0.00" Score1ProgramTypeKey="" Score2ProgramTypeKey="" Score3ProgramTypeKey="" Selected="0" Sequence="0" FullDescription="" />
</Answer>
</Question>
</Section>
</Tab>
</Page>
</ListItem>
</Assmt>
I'm obviously "nesting" things wrong, I just can seem to figure out how to fix it. All of the ListItem elements are supposed to be a one-to-many relationship of records UNDER the Answer element. (Note: XML Samples are cut down to stay in the posting character limit, but there's enough to get the idea)