Skip to content
Open
Show file tree
Hide file tree
Changes from 21 commits
Commits
Show all changes
26 commits
Select commit Hold shift + click to select a range
da0ea8b
Moving message-related helper methods to a MessageUtils class
astride Aug 11, 2025
6d027d9
Customizing MessageUtils to allow for the BatchMessageUtils class to …
astride Aug 11, 2025
106c699
Generating an XML document prior to saving the file to disk, to allow…
astride Aug 13, 2025
b45d5ee
Changing the order of events in KppService.Run() and introducing a he…
astride Aug 14, 2025
e236964
Introducing config values in the GUI project to allow for enabling/di…
astride Aug 14, 2025
1050929
Implementing logic to create batch messages when necessary and possible
astride Aug 14, 2025
c40e837
Removing unnecessary XML helper method
astride Aug 14, 2025
43a2034
Creating helper method for building test input file path
astride Aug 14, 2025
20233fc
Renaming episode.csv to episode_institusjoner.csv and adding an episo…
astride Aug 14, 2025
adb7881
Adding batch file tests
astride Aug 14, 2025
48e1783
Creating a TestBase class
astride Aug 15, 2025
e1cb03f
Moving the batch file tests to a separate class
astride Aug 15, 2025
973b4d9
Using a file-scoped namespace for the test classes
astride Aug 15, 2025
725af44
Moving the 'recommended batch file count' calculation to BatchMessage…
astride Aug 15, 2025
483ff1a
Using more appropriate (i.e. larger) test files
astride Aug 18, 2025
92689dc
Leaving lopenr out of the batch file name
astride Aug 27, 2025
d8f3a12
Setting gigabytes rather than bytes in the config file, and mocking t…
astride Sep 1, 2025
3d57f78
Moving the batch file configuration from settings to the GUI form
astride Sep 1, 2025
5777032
Implementing the possibility of creating batch files in the console app
astride Sep 1, 2025
be8cf03
Updating docs and readme files
astride Sep 1, 2025
2c8f1f0
Making small fixes and removing TODOS
astride Sep 1, 2025
28d36e2
Updating the assembly version / EPJ version to 1.9.0
astride Sep 1, 2025
1aec8a3
Moving the BaseFileSizeInBytes constant from BatchMessageUtils to con…
astride Sep 2, 2025
e00102e
Reverting the 'serialize content to an XML document before saving to …
astride Sep 2, 2025
98f54ad
Deleting the single KPP file if batch files should be created
astride Sep 2, 2025
5f7853f
Bugfixes
astride Sep 2, 2025
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
8 changes: 7 additions & 1 deletion docs/UserGuide.md
Original file line number Diff line number Diff line change
Expand Up @@ -38,13 +38,19 @@ Pakk ut `zip`-filen:
- Angi navn og HER-ID på avsender (nivå 1)
- Angi navn og HER-ID på avsender (nivå 2)
- Velg om sendingen er en ordentlig innsending eller en prøvesending
- Velg om programmet skal kunne lage delmeldinger dersom KPP-meldingen blir for stor
- Angi maksstørrelse på KPP-meldingen
4. Generér melding (`xml`-fil):
- Trykk `Lagre...`
- Velg hvilken mappe du ønsker at den genererte meldingen (`xml`-fil) skal lagres i, samt ønsket navn på filen
- Etter at du har trykket `Lagre` vil fremdriften vises i et lite vindu. Når vinduet viser `Ferdig` er filen ferdig generert.
- Etter at du har trykket `Lagre` vil fremdriften vises i et lite vindu
- Dersom generering av delmeldinger er aktivert og KPP-meldingen er over maksstørrelsen, informeres det om at det genereres delmeldinger
- Når vinduet viser `Ferdig` er filen(e) ferdig generert

Dersom `episode`-filen inneholder episoder knyttet til mer enn én institusjon-ID vil programmet informere brukeren om dette i en meldingsboks.

<small><i>NB: Delmeldinger kan ikke genereres når `episode`-filen inneholder episoder knyttet til mer enn én institusjon-ID.</i></small>

Programmet/Applikasjonen ser slik ut:

![...](./illustrations/GuiApplication.png)
Expand Down
Binary file modified docs/illustrations/GuiApplication.png
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
2 changes: 1 addition & 1 deletion readme.md
Original file line number Diff line number Diff line change
@@ -1,5 +1,5 @@
# Program for konvertering av KPP-filer
Programmet konverterer én csv-fil om episoder og én csv-fil om tjeneste til én xml-melding som skal sendes til Folkehelseinstituttet
Programmet konverterer én csv-fil om episoder og én csv-fil om tjeneste til én KPP-melding (xml-fil) som skal sendes til Folkehelseinstituttet. Programmet kan generere delmeldinger (flere xml-filer) dersom KPP-meldingen blir for stor.

Det er to måter å kjøre programmet:
- Bruke det grafiske grensesnittet (Gui)
Expand Down
12 changes: 12 additions & 0 deletions src/Dhhr.KppParser.ConsoleApp/Program.cs
Original file line number Diff line number Diff line change
Expand Up @@ -43,6 +43,8 @@ private static int Main(string[] args)
{"epj-navn=", "Navn på EPJ", x => kppArgs.NavnEpj = x },
{"epj-versjon=", "Versjon av EPJ", x => kppArgs.VersjonEpj = x },
{"fhi-herid=", "FHIs HerId.", x => kppArgs.FhiHerId = x },
{"batchfiles-enable=", "'true' dersom det er ønskelig å opprette delmeldinger om KPP-meldingen blir for stor", x => kppArgs.BatchFiles.EnableCreation = ParseBool(x) },
{"batchfiles-maxfilesize=", "Maks. filstørrelse for KPP-meldingen i gigabyte (GB)", x => kppArgs.BatchFiles.MaxFileSizeInGigabytes = ParseInt(x) },
Copy link
Collaborator Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

De to batchfiles-*-input-argumentene er bredere enn de eksisterende argumentene. Når man kjører

.\Dhhr.KppParser.ConsoleApp.exe -h

for å vise veiledning for konsollapplikasjonen, ser det ikke så pent ut:

bilde

Har forsøkt å se på om det går an å konfigurere Mono.Options.OptionSet eller Mono.Options.OptionSet.WriteOptionDescriptions() for å øke avstanden mellom første og andre kolonne, men har ikke blitt klok på om det er mulig.

{"Output" },
{"o|output=", "Filsti hvor resultatet lagres", x => kppArgs.OutputPath = x}
};
Expand Down Expand Up @@ -102,13 +104,23 @@ private static int Main(string[] args)
return 0;
}

private static bool ParseBool(string x)
{
return bool.TryParse(x, out var boolValue) && boolValue;
}

private static DateTime ParseDate(string x)
{
return DateTime.TryParseExact(x, "yyyy-MM-dd", CultureInfo.InvariantCulture, DateTimeStyles.None, out var tmp)
? tmp
: DateTime.MinValue;
}

private static int ParseInt(string x)
{
return int.TryParse(x, out var intValue) ? intValue : 0;
}

private static string Version()
{
var version = Assembly.GetExecutingAssembly().GetName().Version?.ToString();
Expand Down
4 changes: 3 additions & 1 deletion src/Dhhr.KppParser.ConsoleApp/lesmeg.txt
Original file line number Diff line number Diff line change
Expand Up @@ -3,7 +3,9 @@
.\Dhhr.KppParser.ConsoleApp.exe -h

# Merknad
Merk at alle Input og Output er påkrevd
Det er valgfritt å angi --batchfiles-*. Dersom --batchfiles-enable er true må --batchfiles-maxfilesize være større enn `0`.

Utover dette er alle Input og Output påkrevd.

# FHIs HerId
I skrivende stund er FHIs HerId-er følgende:
Expand Down
520 changes: 304 additions & 216 deletions src/Dhhr.KppParser.Gui/MainForm.Designer.cs

Large diffs are not rendered by default.

17 changes: 17 additions & 0 deletions src/Dhhr.KppParser.Gui/MainForm.cs
Original file line number Diff line number Diff line change
Expand Up @@ -39,6 +39,8 @@ public MainForm(Settings settings)
OrgHerIdBox.Text = Properties.KppParser.Default.Level1HerId;
OrgNameBox2.Text = Properties.KppParser.Default.Level2Name;
OrgHerIdBox2.Text = Properties.KppParser.Default.Level2HerId;
BatchFiles_EnableCreation.Checked = Properties.KppParser.Default.BatchFiles_EnableCreation;
BatchFiles_MaxFileSizeInGigabytes.Value = Properties.KppParser.Default.BatchFiles_MaxFileSizeInGigabytes;
}

private void EpisodeButton_Click(object sender, EventArgs e)
Expand Down Expand Up @@ -80,6 +82,8 @@ private void RunButton_Click(object sender, EventArgs e)
Properties.KppParser.Default.Level1HerId = OrgHerIdBox.Text;
Properties.KppParser.Default.Level2Name = OrgNameBox2.Text;
Properties.KppParser.Default.Level2HerId = OrgHerIdBox2.Text;
Properties.KppParser.Default.BatchFiles_EnableCreation = BatchFiles_EnableCreation.Checked;
Properties.KppParser.Default.BatchFiles_MaxFileSizeInGigabytes = BatchFiles_MaxFileSizeInGigabytes.Value;
Properties.KppParser.Default.Save();

// Run
Expand All @@ -99,6 +103,11 @@ private void RunButton_Click(object sender, EventArgs e)
Leverandor = _settings.Leverandor,
NavnEpj = _settings.NavnEpj,
VersjonEpj = _settings.VersjonEpj,
BatchFiles = new BatchFileArgs
{
EnableCreation = BatchFiles_EnableCreation.Checked,
MaxFileSizeInGigabytes = (int)BatchFiles_MaxFileSizeInGigabytes.Value,
},
ProgramVersion = _version,
};

Expand Down Expand Up @@ -129,5 +138,13 @@ private void RunButton_Click(object sender, EventArgs e)
var progressForm = new ProgressForm(args);
progressForm.ShowDialog();
}

private void BatchFiles_EnableCreation_CheckedChanged(object sender, EventArgs e)
{
var batchFileCreationEnabled = sender is CheckBox { Checked: true };

BatchFiles_MaxFileSizeInGigabytes.Enabled = batchFileCreationEnabled;
BatchFiles_MaxFileSizeInGigabytes_Label.Enabled = batchFileCreationEnabled;
}
}
}
27 changes: 25 additions & 2 deletions src/Dhhr.KppParser.Gui/Properties/KppParser.Designer.cs

Some generated files are not rendered by default. Learn more about how customized files appear on GitHub.

11 changes: 9 additions & 2 deletions src/Dhhr.KppParser.Gui/Properties/KppParser.settings
Original file line number Diff line number Diff line change
@@ -1,4 +1,4 @@
<?xml version='1.0' encoding='utf-8'?>
<?xml version="1.0" encoding="UTF-8"?>
<SettingsFile xmlns="http://schemas.microsoft.com/VisualStudio/2004/01/settings" CurrentProfile="(Default)" GeneratedClassNamespace="Dhhr.KppParser.Gui.Properties" GeneratedClassName="KppParser">
<Profiles />
<Settings>
Expand All @@ -23,5 +23,12 @@
<Setting Name="UpgradeRequired" Type="System.Boolean" Scope="User">
<Value Profile="(Default)">True</Value>
</Setting>
<Setting Name="BatchFiles_EnableCreation" Type="System.Boolean" Scope="User">
<Value Profile="(Default)">False</Value>
</Setting>
<Setting Name="BatchFiles_MaxFileSizeInGigabytes" Type="System.Decimal" Scope="User">
<Value Profile="(Default)">2</Value>
</Setting>
</Settings>
</SettingsFile>
</SettingsFile>

9 changes: 7 additions & 2 deletions src/Dhhr.KppParser.Gui/lesmeg.txt
Original file line number Diff line number Diff line change
Expand Up @@ -10,8 +10,13 @@
- Trykk på dato-boksen og skriv inn dato selv
eller
- Trykk på dato-boksen og velg dato ved hjelp av piltastene
4. Trykk kjør
Programmet vil gi beskjed når det er ferdig.
4. Oppgi informasjon om "Avsender nivå 1" og "Avsender nivå 2"
- "Org. Navn" er en tekststreng
- "Org. HerId er et tall
5. Angi om det er en prøvesending eller en faktisk innsending
6. Angi om programmet skal kunne lage delmeldinger dersom KPP-meldingen blir for stor
- Angi i så fall maksstørrelse på KPP-meldingen
7. Trykk kjør. Programmet vil gi beskjed når det er ferdig.


# Konfigurasjon
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -5,6 +5,12 @@
</PropertyGroup>

<ItemGroup>
<None Include="Resources\TestData\episode_larger_multipleinstitutions.csv">
<CopyToOutputDirectory>PreserveNewest</CopyToOutputDirectory>
</None>
<None Include="Resources\TestData\episode_larger_singleinstitution.csv">
<CopyToOutputDirectory>PreserveNewest</CopyToOutputDirectory>
</None>
<None Include="Resources\TestData\episode_missing_header.csv">
<CopyToOutputDirectory>PreserveNewest</CopyToOutputDirectory>
</None>
Expand All @@ -14,6 +20,9 @@
<None Include="Resources\TestData\tjeneste_missing_header.csv">
<CopyToOutputDirectory>PreserveNewest</CopyToOutputDirectory>
</None>
<None Include="Resources\TestData\tjeneste_larger.csv">
<CopyToOutputDirectory>PreserveNewest</CopyToOutputDirectory>
</None>
<None Include="Resources\TestData\tjeneste.csv">
<CopyToOutputDirectory>PreserveNewest</CopyToOutputDirectory>
</None>
Expand All @@ -25,6 +34,7 @@
<ItemGroup>
<PackageReference Include="FluentAssertions" Version="6.12.0" />
<PackageReference Include="Microsoft.NET.Test.Sdk" Version="17.9.0" />
<PackageReference Include="Moq" Version="4.20.72" />
<PackageReference Include="MSTest.TestAdapter" Version="3.3.1" />
<PackageReference Include="MSTest.TestFramework" Version="3.3.1" />
</ItemGroup>
Expand Down
Loading