Udpates for notes
diff --git a/cda/plugins/org.eclipse.mdht.cda.xml.ui/src/org/eclipse/mdht/cda/xml/ui/handlers/ProcessSectionSwitch.java b/cda/plugins/org.eclipse.mdht.cda.xml.ui/src/org/eclipse/mdht/cda/xml/ui/handlers/ProcessSectionSwitch.java
index 980a1d1..1f0c416 100644
--- a/cda/plugins/org.eclipse.mdht.cda.xml.ui/src/org/eclipse/mdht/cda/xml/ui/handlers/ProcessSectionSwitch.java
+++ b/cda/plugins/org.eclipse.mdht.cda.xml.ui/src/org/eclipse/mdht/cda/xml/ui/handlers/ProcessSectionSwitch.java
@@ -409,7 +409,7 @@
 			Row row = sheet.createRow(sheet.getPhysicalNumberOfRows());
 			int offset = SpreadsheetSerializer.serializePatient(row, 0, this.documentMetadata, patientRole);
 			offset = SpreadsheetSerializer.serializeEnounterID(row, offset, act, encounters);
-			offset = SpreadsheetSerializer.serializeProcedureActivityAct(row, offset, act);
+			offset = SpreadsheetSerializer.serializeProcedureActivityAct(row, offset, act, true);
 			SpreadsheetSerializer.serializeSectionAndFileName(row, offset, act.getSection(), file.getName());
 
 		}
@@ -435,7 +435,7 @@
 			Row row = sheet.createRow(sheet.getPhysicalNumberOfRows());
 			int offset = SpreadsheetSerializer.serializePatient(row, 0, this.documentMetadata, patientRole);
 			offset = SpreadsheetSerializer.serializeEnounterID(row, offset, act, encounters);
-			offset = SpreadsheetSerializer.serializeProcedureActivityAct(row, offset, act);
+			offset = SpreadsheetSerializer.serializeProcedureActivityAct(row, offset, act, true);
 			SpreadsheetSerializer.serializeSectionAndFileName(row, offset, act.getSection(), file.getName());
 
 		}
@@ -478,7 +478,7 @@
 			Row row = sheet.createRow(sheet.getPhysicalNumberOfRows());
 			int offset = SpreadsheetSerializer.serializePatient(row, 0, this.documentMetadata, patientRole);
 			offset = SpreadsheetSerializer.serializeEnounterID(row, offset, act, encounters);
-			offset = SpreadsheetSerializer.serializeProcedureActivityAct(row, offset, act);
+			offset = SpreadsheetSerializer.serializeProcedureActivityAct(row, offset, act, true);
 			SpreadsheetSerializer.serializeSectionAndFileName(row, offset, act.getSection(), file.getName());
 
 		}
@@ -633,7 +633,7 @@
 			Row row = sheet.createRow(sheet.getPhysicalNumberOfRows());
 			int offset = SpreadsheetSerializer.serializePatient(row, 0, this.documentMetadata, patientRole);
 			offset = SpreadsheetSerializer.serializeEnounterID(row, offset, act, encounters);
-			offset = SpreadsheetSerializer.serializeProcedureActivityAct(row, offset, act);
+			offset = SpreadsheetSerializer.serializeProcedureActivityAct(row, offset, act, true);
 			SpreadsheetSerializer.serializeSectionAndFileName(row, offset, act.getSection(), file.getName());
 
 		}
@@ -706,7 +706,7 @@
 			Row row = sheet.createRow(sheet.getPhysicalNumberOfRows());
 			int offset = SpreadsheetSerializer.serializePatient(row, 0, this.documentMetadata, patientRole);
 			offset = SpreadsheetSerializer.serializeEnounterID(row, offset, act, encounters);
-			offset = SpreadsheetSerializer.serializeProcedureActivityProcedure(row, offset, act);
+			offset = SpreadsheetSerializer.serializeProcedureActivityProcedure(row, offset, act, true);
 			SpreadsheetSerializer.serializeSectionAndFileName(row, offset, act.getSection(), file.getName());
 
 		}
@@ -736,7 +736,7 @@
 			offset = SpreadsheetSerializer.serializeEnounterID(
 				row, offset, planOfCareActivitySubstanceAdministration, encounters);
 			offset = SpreadsheetSerializer.serializeSubstanceAdministration(
-				row, offset, planOfCareActivitySubstanceAdministration);
+				row, offset, planOfCareActivitySubstanceAdministration, true);
 			SpreadsheetSerializer.serializeSectionAndFileName(
 				row, offset, planOfCareActivitySubstanceAdministration.getSection(), file.getName());
 		}
diff --git a/cda/plugins/org.eclipse.mdht.cda.xml.ui/src/org/eclipse/mdht/cda/xml/ui/handlers/SectionSwitch.java b/cda/plugins/org.eclipse.mdht.cda.xml.ui/src/org/eclipse/mdht/cda/xml/ui/handlers/SectionSwitch.java
index 5d3a48d..ebae0a0 100644
--- a/cda/plugins/org.eclipse.mdht.cda.xml.ui/src/org/eclipse/mdht/cda/xml/ui/handlers/SectionSwitch.java
+++ b/cda/plugins/org.eclipse.mdht.cda.xml.ui/src/org/eclipse/mdht/cda/xml/ui/handlers/SectionSwitch.java
@@ -1003,7 +1003,7 @@
 
 			offset = SpreadsheetSerializer.serializeEnounterID(row, offset, sa, encounters);
 
-			offset = SpreadsheetSerializer.serializeProcedureActivityAct(row, offset, sa);
+			offset = SpreadsheetSerializer.serializeProcedureActivityAct(row, offset, sa, true);
 
 			SpreadsheetSerializer.serializeSectionAndFileName(row, offset, sa.getSection(), fileName);
 
@@ -1339,7 +1339,7 @@
 
 			offset = SpreadsheetSerializer.serializeEnounterID(row, offset, sa, encounters);
 
-			offset = SpreadsheetSerializer.serializeProcedureActivityObservation(row, offset, sa);
+			offset = SpreadsheetSerializer.serializeProcedureActivityObservation(row, offset, sa, true);
 
 			SpreadsheetSerializer.serializeSectionAndFileName(row, offset, sa.getSection(), fileName);
 
diff --git a/cda/plugins/org.eclipse.mdht.cda.xml.ui/src/org/eclipse/mdht/cda/xml/ui/handlers/SpreadsheetSerializer.java b/cda/plugins/org.eclipse.mdht.cda.xml.ui/src/org/eclipse/mdht/cda/xml/ui/handlers/SpreadsheetSerializer.java
index 21c7a3b..9e961c7 100644
--- a/cda/plugins/org.eclipse.mdht.cda.xml.ui/src/org/eclipse/mdht/cda/xml/ui/handlers/SpreadsheetSerializer.java
+++ b/cda/plugins/org.eclipse.mdht.cda.xml.ui/src/org/eclipse/mdht/cda/xml/ui/handlers/SpreadsheetSerializer.java
@@ -845,7 +845,7 @@
 
 			offset = SpreadsheetSerializer.serializeEnounterID(row, offset, sa, encounters);
 
-			offset = serializeProcedureActivityProcedure(row, offset, sa);
+			offset = serializeProcedureActivityProcedure(row, offset, sa, true);
 
 			offset = serializeSectionAndFileName(row, offset, sa.getSection(), organizationAndSoftware.completePath);
 
@@ -1089,7 +1089,7 @@
 			Row row = sheet.createRow(sheet.getPhysicalNumberOfRows());
 			offset = serializePatient(row, offset, organizationAndSoftware, patientRole);
 			offset = SpreadsheetSerializer.serializeEnounterID(row, offset, sa, encounters);
-			offset = serializeSubstanceAdministration(row, offset, sa);
+			offset = serializeSubstanceAdministration(row, offset, sa, true);
 			offset = serializeSectionAndFileName(row, offset, sa.getSection(), organizationAndSoftware.completePath);
 			offset = appendValidation(row, offset, sa);
 		}
@@ -1889,7 +1889,7 @@
 	 * @param sa
 	 * @return
 	 */
-	static int serializeProcedureActivityAct(Row row, int offset, Act procedureActivityAct) {
+	static int serializeProcedureActivityAct(Row row, int offset, Act procedureActivityAct, boolean checkForNotes) {
 		StringBuffer sb = new StringBuffer();
 
 		for (II ii : procedureActivityAct.getIds()) {
@@ -1912,6 +1912,26 @@
 				procedureActivityAct.getText());
 		}
 
+		if (checkForNotes) {
+			boolean hasNotes = false;
+			Act note = null;
+			for (Act act : observation.getActs()) {
+				if (act instanceof NoteActivity) {
+					hasNotes = true;
+					note = act;
+				}
+			}
+
+			if (hasNotes) {
+				row.createCell(offset++).setCellValue(hasNotes);
+				row.createCell(offset++).setCellValue(CDAUtil.getDomainPath(note));
+			} else {
+				row.createCell(offset++).setCellValue(false);
+				row.createCell(offset++).setCellValue("");
+			}
+
+		}
+
 		offset = appendProcedurePerformaerAndOrganization(row, offset, procedureActivityAct.getPerformers());
 		return offset;
 	}
@@ -1957,7 +1977,8 @@
 	 * @param sa
 	 * @return
 	 */
-	static int serializeProcedureActivityObservation(Row row, int offset, Observation procedureActivityObservation) {
+	static int serializeProcedureActivityObservation(Row row, int offset, Observation procedureActivityObservation,
+			boolean checkForNotes) {
 
 		StringBuffer sb = new StringBuffer();
 		for (II ii : procedureActivityObservation.getIds()) {
@@ -1980,6 +2001,26 @@
 				procedureActivityObservation.getText());
 		}
 
+		if (checkForNotes) {
+			boolean hasNotes = false;
+			Act note = null;
+			for (Act act : observation.getActs()) {
+				if (act instanceof NoteActivity) {
+					hasNotes = true;
+					note = act;
+				}
+			}
+
+			if (hasNotes) {
+				row.createCell(offset++).setCellValue(hasNotes);
+				row.createCell(offset++).setCellValue(CDAUtil.getDomainPath(note));
+			} else {
+				row.createCell(offset++).setCellValue(false);
+				row.createCell(offset++).setCellValue("");
+			}
+
+		}
+
 		offset = appendProcedurePerformaerAndOrganization(row, offset, procedureActivityObservation.getPerformers());
 
 		return offset;
@@ -1991,7 +2032,8 @@
 	 * @param sa
 	 * @return
 	 */
-	static int serializeProcedureActivityProcedure(Row row, int offset, Procedure procedureActivityProcedure) {
+	static int serializeProcedureActivityProcedure(Row row, int offset, Procedure procedureActivityProcedure,
+			boolean checkForNotes) {
 		StringBuffer sb = new StringBuffer();
 		for (II ii : procedureActivityProcedure.getIds()) {
 			sb.append(CDAValueUtil.getKey2(ii));
@@ -2013,6 +2055,26 @@
 				procedureActivityProcedure.getText());
 		}
 
+		if (checkForNotes) {
+			boolean hasNotes = false;
+			Act note = null;
+			for (Act act : observation.getActs()) {
+				if (act instanceof NoteActivity) {
+					hasNotes = true;
+					note = act;
+				}
+			}
+
+			if (hasNotes) {
+				row.createCell(offset++).setCellValue(hasNotes);
+				row.createCell(offset++).setCellValue(CDAUtil.getDomainPath(note));
+			} else {
+				row.createCell(offset++).setCellValue(false);
+				row.createCell(offset++).setCellValue("");
+			}
+
+		}
+
 		offset = appendProcedurePerformaerAndOrganization(row, offset, procedureActivityProcedure.getPerformers());
 
 		return offset;
@@ -2190,7 +2252,8 @@
 
 	}
 
-	static int serializeSubstanceAdministration(Row row, int offset, SubstanceAdministration substanceAdministration) {
+	static int serializeSubstanceAdministration(Row row, int offset, SubstanceAdministration substanceAdministration,
+			boolean checkForNotes) {
 
 		StringBuffer sb = new StringBuffer();
 
@@ -2282,6 +2345,26 @@
 		row.createCell(offset++).setCellValue(
 			GenerateCDADataHandler.sigLocationSwitch.doSwitch(substanceAdministration));
 
+		if (checkForNotes) {
+			boolean hasNotes = false;
+			Act note = null;
+			for (Act act : observation.getActs()) {
+				if (act instanceof NoteActivity) {
+					hasNotes = true;
+					note = act;
+				}
+			}
+
+			if (hasNotes) {
+				row.createCell(offset++).setCellValue(hasNotes);
+				row.createCell(offset++).setCellValue(CDAUtil.getDomainPath(note));
+			} else {
+				row.createCell(offset++).setCellValue(false);
+				row.createCell(offset++).setCellValue("");
+			}
+
+		}
+
 		offset = SpreadsheetSerializer.appendOrganizationAndAuthor(row, offset, substanceAdministration.getAuthors());
 
 		return offset;