AmiKo for Windows, written in C#. Applications are available in the Microsoft store now!
| Name | Language | Build |
|---|---|---|
| AmiKo Desitin | Deutsch (Schweiz) | Build in Azure Pipelines |
| CoMed Desitin | Français (Suisse) | Build in Azure Pipelines |
Another version for the macOS is also available. See AmiKo-OSX.
- All legally registered drugs of Switzerland
15'913Drug-Drug Interactions- Full-Text-Search (FTS) with Keyword highlighting
- Patient Management (outlook format CSV integration)
- Prescriptions (with comment, import/export support)
- Documents Printing
Search by:
- Drug Tradename
- Active Agent
- Registration Holder
- ATC-Code
- Drug Indication
- Registration-Number
- Full-Text Search
All data can be updated on daily basis.
- NuGet
>= 4.6.2 - MSBuild
>= 14.0 - .NET Core SDK (
2.1.105) - .NET Core Runtime (
2.0.7) - .NET Framework (
4.6.2)
Or just setup Visual Studio >= 2015
And for testing.
- NUnit (
>= 3.10.1) - NUnit Console (
>= 3.8.0)
For release.
- Windows Kit 10 (
10.0.17134.0) - Desktop App Converter
If you check out the source code on Linux on Windows, it seems that it must be readonly on Windows. You can still build it on there on Windows using MSBuild or Visual Studio etc., but you cannot modify existing files on there from Windows side.
See: Do not change Linux files using Windows apps and tools.
- Linux on Windows (Readonly on Windows)
- Windows (Readable/Editable also on Linux on Windows via
/mnt)
At first, you need to put database and csv files into Data directory.
Once you have built the app with these files, you can update it via the feature
of the app.
It can be done by running download.ps1 with Powershell, or:
$ cd /path/to/project
% mkdir -p AmiKoWindows/Data/{de,fr}
# AmiKoDesitin
$ cd AmiKoWindows/Data/de
$ curl -sLO http://pillbox.oddb.org/amiko_report_de.html
$ curl -sLO http://pillbox.oddb.org/amiko_db_full_idx_de.zip
$ curl -sLO http://pillbox.oddb.org/amiko_frequency_de.db.zip
$ curl -sLO http://pillbox.oddb.org/drug_interactions_csv_de.zip
$ unzip amiko_db_full_idx_de.zip
$ unzip amiko_frequency_de.db.zip
$ unzip drug_interactions_csv_de.zip
# CoMedDesitin
$ cd AmiKoWindows/Data/fr
$ curl -sLO http://pillbox.oddb.org/amiko_report_fr.html
$ curl -sLO http://pillbox.oddb.org/amiko_db_full_idx_fr.zip
$ curl -sLO http://pillbox.oddb.org/amiko_frequency_fr.db.zip
$ curl -sLO http://pillbox.oddb.org/drug_interactions_csv_fr.zip
$ unzip amiko_db_full_idx_fr.zip
$ unzip amiko_frequency_fr.db.zip
$ unzip drug_interactions_csv_fr.zip- Roboto (Apache-2.0)
- ModernUIIcons (CC-BY-ND-3.0)
- Glyphish (NOT REDISTRIBUTED *)
*: We have purchased Glyphish icons and modified them for this project. It's
not redistributed under GPL-3.0 (as icons). Because it's not open
source project, you cannot take them as icons from this project, can just use
them as a part of our source code. See Glyphish-License.txt.
If you have checked out the project on Linux on Windows, NuGet can't handle
long path on the PowerShell on Windows, correctly. So you need to set symbolic
link using mklink and environment variable on Command Prompt or PowerShell
(using /c).
See: NuGet and long file name support #3324.
# This is project location, for example environment variable `AmiKo` is set as:
# C:\Users\<USER>\AppData\Local\Packages\TheDebian...\LocalState\rootfs
# \home\<user>\path\to\project
C:\Windows\system32> cd C:\Users\<USER>
# Or `cmd /c mklink /D AmiKo %AmiKo%` on PowerShell
C:\Users\<USER>> mklink /d AmiKo %AmiKo%
C:\Users\<USER>> cd AmiKo
C:\Users\<USER>\AmiKo>And then, you can download packages (into Packages).
on PowerShell:
# Downloads NuGet.exe (windows x86 Commandline) here
C:\Users\<USER>\AmiKo> .\NuGet.exe install "AmiKoWindows/packages.config"On Linux on Windows, it's not affected to long path name problem. on Bash (Linux on Windows with Mono):
# You can just do it (e.g. `/usr/local/bin/nuget.exe`)
user@host:/path/to/project $ nuget install AmiKoWindows/packages.config- Rename
GoogleConstants.cs.sampletoAmiKoWindows\Source\GoogleConstants.cs - Fill the the details in the file
- Rename
AmiKoWindows\Source\HINClient\HINClientCredentials.cs.sampletoAmiKoWindows\Source\HINClient\HINClientCredentials.cs - Fill the the details in the file
From this step, you may need to use PowerShell on Windows.
- Configuration (
DebugorRelease) - Platform (
AnyCPU,x86orx64.) - Log (
Traceor None)
You would need to install Microsoft Build Tools 2015 from here.
Use >= 14.0 (installed one by Microsoft Build Tools 2015). Or, you may want
to use special command prompt like Developer Command Prompt for VS 2017
bundled in Visual Studio.
# Check the location of `MSBuild.exe`
PS C:\Users\... > Resolve-Path HKLM:\SOFTWARE\Microsoft\MSBuild\ToolsVersion\* | Get-ItemProperty -Name MSBuildToolsPath
MSBuildToolsPath : C:\Program Files (x86)\MSBuild\14.0\bin\amd64\
PSPath : Microsoft.PowerShell.Core\Registry::HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\MSBuild\ToolsVersions\14.0
...
MSBuildToolsPath : C\:Windows\Microsoft.NET\Framework64\v4.0.30319\
PSPath : Microsoft.PowerShell.Core\Registry::HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\MSBuild\ToolsVersions\4.0
...Build with MSBuild on PowerShell (You need to set PATH for MSBuild.exe):
# AmiKoDesitin
PS C:\Users\...> MSBuild.exe .\AmiKoWindows\AmiKoDesitin.csproj /t:Clean
PS C:\Users\...> MSBuild.exe .\AmiKoWindows\AmiKoDesitin.csproj /t:Build /p:Configuration=Debug
# CoMedDesitin
PS C:\Users\...> MSBuild.exe .\AmiKoWindows\CoMedDesitin.csproj /t:Clean
PS C:\Users\...> MSBuild.exe .\AmiKoWindows\CoMedDesitin.csproj /t:Build /p:Configuration=DebugAnd then, you can start or kill {AmiKo|CoMed}Desitin.exe in bin directory like this:
# AmiKoDesitin
PS C:\Users\...> Start-Process '.\AmiKoWindows\bin\Debug\AmiKo\AmiKo Desitin.exe'
PS C:\Users\...> Get-Process 'AmiKo Desitin' | Stop-Process
PS C:\Users\...> taskkill /im 'AmiKo Desitin.exe' /f
# CoMedDesitin
PS C:\Users\...> Start-Process '.\AmiKoWindows\bin\Debug\AmiKo\CoMed Desitin.exe'
PS C:\Users\...> Get-Process 'CoMed Desitin' | Stop-Process
PS C:\Users\...> taskkill /im 'CoMed Desitin.exe' /fThere is also a script to build and invoke the application.
# AmiKoDesitin (Debug is default)
PS C:\Users\...> PowerShell.exe -ExecutionPolicy Bypass -File .\BuildAndRun.ps1 "AmiKo"
# CoMedDesitin
PS C:\Users\...> PowerShell.exe -ExecutionPolicy Bypass -File .\BuildAndRun.ps1 "CoMed" "Debug"Finally, You need to debug the app with DebugView or WinDbg etc. (Set /p:Log=Trace for Trace)
1. AmiKoWindows -> Navigate {AmiKoDesitin|CoMedDesitin} -> Properties (Right Click)
a. Set assembly name
b. Set assembly information (Title, Product, Assembly version, File version)
2. Confirm Signing Tab
3. Check Security
4. Set target project using `Set as StartUp Project` (Right Click on the Solution Name)
5. Clean Solution (both projects)
5. Rebuild target project (AmiKoDesitin or CoMedDesitin)
6. (Publish)or you can add this to your Path
C:\Program Files (x86)\Microsoft Visual Studio\2017\Community\MSBuild\15.0\Bin\amd64
and this will work as well from your Source Directory
PS C:\Users\...> MSBuild.exe .\AmiKoWindows\AmiKoDesitin.csproj /t:Clean
PS C:\Users\...> MSBuild.exe .\AmiKoWindows\AmiKoDesitin.csproj /t:Build /p:Configuration=Debug
PS C:\Users\...> Start-Process '.\AmiKoWindows\bin\Debug\AmiKo\AmiKo Desitin.exe'
# or just do
PS C:\Users\...> PowerShell.exe -ExecutionPolicy Bypass -File .\BuildAndRun.ps1 "AmiKo"
- Get The WiX toolset
- Build Amiko / Comed with Release configuration
- Run
MakeMsi.ps1with Powershell- Make sure you have WiX command in PATH,
;C:\Program Files (x86)\WiX Toolset v3.11\bin
- The output should be at:
AmikoWindows\bin\Release\Amiko-Installer\Amiko-Installer.msiAmikoWindows\bin\Release\Comed-Installer\Comed-Installer.msi
You would need following steps.
- Convert Exe binary to Appx using
MakeRelease.ps1 - Update AppxManifest.xml
- Re-Package Assets using
Package.ps1 - Re-Signing
Download Desktop App Converter from Microsoft Store. And then use
MakeRelease.ps1 script with your signing certificate and key. (In PowerShell run as Administrator)
Before making release build, check build configuration and version etc. in following files.
AmiKoWindows/{AmiKoDesitin.appx.manifest,CoMedDesitin.appx.manifest}AmiKoWindows/Properties/AssemblyInfo.csMakeRelease.ps1
# As Administrator
# AmiKoDesitin
PS C:\Users\...> PowerShell.exe -ExecutionPolicy Bypass -File .\MakeRelease.ps1 "AmiKo" "Debug"
PS C:\Users\...> PowerShell.exe -ExecutionPolicy Bypass -File .\MakeRelease.ps1 "AmiKo" "Release"
# CoMedDesitin
PS C:\Users\...> PowerShell.exe -ExecutionPolicy Bypass -File .\MakeRelease.ps1 "CoMed" "Debug"
PS C:\Users\...> PowerShell.exe -ExecutionPolicy Bypass -File .\MakeRelease.ps1 "CoMed" "Release"Appx will be generated in
AmiKoWindows/bin/{Debug,Release}/Output/{AmiKo,CoMed}.
Currently, -AppFileTypes option of DesktopAppConverter does not work
expectedly for out configurations. Although fix AppxManifest.xml manually.
Path:
AmiKoWindows/bin/Release/Output/yweseeGmbH.AmiKo/PackageFiles/AppxManifest.xmlAmiKoWindows/bin/Release/Output/yweseeGmbH.CoMedDesitin/PackageFiles/AppxManifest.xml
# add missing entries `Extensions`
<Applications>
<Application>
...
<Extensions>
<uap:Extension Category="windows.fileTypeAssociation">
<uap:FileTypeAssociation Name="amk">
<uap:Logo>Assets\Square44x44Logo.scale-100.png</uap:Logo>
<uap:SupportedFileTypes>
<uap:FileType>.amk</uap:FileType>
</uap:SupportedFileTypes>
</uap:FileTypeAssociation>
</uap:Extension>
</Extensions>
</Application>
</Applications>
Package.ps1 script does also this step. If you want manually do it again. you can follow these instructions:
# As Administrator
# AmiKoDesitin
PS C:\Users\...> PowerShell.exe -ExecutionPolicy Bypass -File .\Package.ps1 "AmiKo" "Debug"
PS C:\Users\...> PowerShell.exe -ExecutionPolicy Bypass -File .\Package.ps1 "AmiKo" "Release"
# CoMedDesitin
PS C:\Users\...> PowerShell.exe -ExecutionPolicy Bypass -File .\Package.ps1 "CoMed" "Debug"
PS C:\Users\...> PowerShell.exe -ExecutionPolicy Bypass -File .\Package.ps1 "CoMed" "Release"Or,
- Make sure
'C:\Program Files (x86)\Windows Kits\10\bin\10.0.17134.0\x64\{makepri,makeappx}.exe'exist (Version10.0.17134, and set also PATH, as you need) - Go to
AmiKoWindows/bin/Release/Output/yweseeGmbH.AmiKo/PackageFiles - Copy all Assets in
AmiKoWindows/Assets/toAmiKoWindows/bin/Release/Output/yweseeGmbH.AmiKo/PackageFiles/Assets/(Overwrite) - Create pri files
- Re-Package using
MakeAppx.exe
# e.g. AmiKoDesitin
# Change directory into **PackageFiles**
PS C:\Users\...> cd AmiKoWindows/bin/Release/Output/yweseeGmbH.AmiKo/PackageFiles
PS C:\Users\...> rm .\Assets -r -fo
PS C:\Users\...> cp ..\..\..\..\..\Assets .
# MakePri.exe
PS C:\Users\...> 'makepri.exe' createconfig /cf priconfig.xml /dq de-CH
# It seems that it needs absolute path...
PS C:\Users\...> 'makepri.exe' new \
/pr C:\Users\<user>\path\to\amiko_csharp\AmiKoWindows\bin\Release\Output\yweseeGmbH.AmiKo\PackageFiles\ \
/cf C:\Users\<user>\path\to\amiko_csharp\AmiKoWindows\bin\Release\Output\yweseeGmbH.AmiKo\PackageFiles\priconfig.xml
# MakeAppx.exe
PS C:\Users\...> 'makeappx.exe' pack /d .\ /p "AmiKo Desitin"
# Replace appx
PS C:\Users\...> Move-Item -Path "AmiKoWindows\bin\Release\Output\yweseeGmbH.AmiKo\PackageFiles\AmiKo Desitin.appx" `
-Destination "AmiKoWindows\bin\Release\Output\yweseeGmbH.AmiKo\yweseeGmbH.AmiKo.appx" -Force# Sign (again)
PS C:\Users\...> signtool.exe sign /fd <HASH ALGORITHM> /a /f <PFX> /p <PASSWORD> <FILE>.appxNOTE:
You need to install this pfx certificate into Trusted People on Local
Machine via Certificate Wizard.
Use importpfx.exe importpfx.exe -f "somePfx.pfx" -p "somePassword" -t MACHINE -s "TRUSTEDPEOPLE"
- https://aka.ms/converter
- https://docs.microsoft.com/en-us/windows/uwp/launch-resume/handle-file-activation
- https://docs.microsoft.com/en-us/windows/uwp/porting/desktop-to-uwp-prepare
- https://docs.microsoft.com/en-us/windows/uwp/porting/desktop-to-uwp-run-desktop-app-converter
- https://docs.microsoft.com/en-us/windows/uwp/app-resources/makepri-exe-command-options
- https://docs.microsoft.com/en-us/windows/uwp/packaging/sign-app-package-using-signtool
To clean built cache data or resources etc. (for debug, .exe)
PS C:\Users\...> taskkill /im 'AmiKo Desitin.exe' /f
PS C:\Users\...> MSBuild.exe .\AmiKoWindows\AmiKoDesitin.csproj /t:Clean
PS C:\Users\...> taskkill /im 'CoMed Desitin.exe' /f
PS C:\Users\...> MSBuild.exe .\AmiKoWindows\CoMedDesitin.csproj /t:Clean# Just delete these directories (or delete `user.config` in there)
PS C:\Users\...> rm 'C:\Users\<USER>\AppData\Local\ywesee\AmiKo Desitin.exe*' -f -fo
PS C:\Users\...> rm 'C:\Users\<USER>\AppData\Local\ywesee\CoMed Desitin.exe*' -f -fo- Fachinfo Text DB
- Favorites
- Interaction Basket
- Doctor(Operator) Profile Photo
# e.g. Profile Photo (for debug, .exe)
PS C:\Users\...> rm 'C:\Users\<USER>\AppData\Roaming\ywesee\AmiKo Desitin\*.png' -f -fo
PS C:\Users\...> rm 'C:\Users\<USER>\AppData\Roaming\ywesee\CoMed Desitin\*.png' -f -foTo reset AddressBook entries and Prescriptions files (.amk files).
# AmiKoDesitin (for debug, .exe)
PS C:\Users\...> taskkill /im 'AmiKo Desitin.exe' /f
PS C:\Users\...> rm 'C:\Users\<USER>\AppData\Local\Temp\amiko*' -r -fo
PS C:\Users\...> rm 'C:\Users\<USER>\AppData\Roaming\ywesee\Amiko Desitin\amk\*' -r -fo
PS C:\Users\...> rm .\AmiKoWindows\bin\Debug\AmiKo\* -r -fo
# CoMedDesitin (for debug, .exe)
PS C:\Users\...> taskkill /im 'CoMed Desitin.exe' /f
PS C:\Users\...> rm 'C:\Users\<USER>\AppData\Local\Temp\comed*' -r -fo
PS C:\Users\...> rm 'C:\Users\<USER>\AppData\Roaming\ywesee\CoMed Desitin\amk\*' -r -fo
PS C:\Users\...> rm .\AmiKoWindows\bin\Debug\CoMed\* -r -foSee projects in AmiKoWindows.Tests. Tests are written in NUnit.
PS C:\Users\...> taskkill /im 'MSBuild.exe' /f
# AmiKoDesitin
PS C:\Users\...> MSBuild.exe .\AmiKoWindows.Tests\AmiKoDesitin.Test.csproj /t:Clean
PS C:\Users\...> MSBuild.exe .\AmiKoWindows.Tests\AmiKoDesitin.Test.csproj /t:Build /p:Configuration=Debug /p:Platform=x64
PS C:\Users\...> .\Package\NUnit.ConseleRunner.3.8.0\tools\nunit3-console.exe .\AmiKoWindows.Tests\bin\Debug\AmiKo\AmiKoDesitin.Test.dll --output TestOutput.log
# CoMedDesitin
PS C:\Users\...> MSBuild.exe .\AmiKoWindows.Tests\CoMedDesitin.Test.csproj /t:Clean
PS C:\Users\...> MSBuild.exe .\AmiKoWindows.Tests\CoMedDesitin.Test.csproj /t:Build /p:Configuration=Debug /p:Platform=x64
PS C:\Users\...> .\Package\NUnit.ConsoleRunner.3.8.0\tools\nunit3-console.exe .\AmiKoWindows.Tests\bin\Debug\CoMed\CoMedDesitin.Test.dll --output TestOutput.logOr you can just execute tests using RunTest.ps1 like this.
# AmiKoDesitin
PS C:\Users\...> PowerShell.exe -ExecutionPolicy Bypass -File .\RunTest.ps1 "AmiKo"
# CoMedDesitin
PS C:\Users\...> PowerShell.exe -ExecutionPolicy Bypass -File .\RunTest.ps1 "CoMed"GPL-3.0
AmiKo for Windows
Copyright (c) ywesee GmbHPlease contact:
zdavatz@ywesee.com
+41 43 540 05 50


